Two methods of approximating a point-spread function in IDL:

1. StarFinder seems to do a great job at finding point sources in crowded fields. It includes a routine for generating the Airy pattern. For a 51 x 51 array, with the peak at [25, 25], and an FWHM of 8.0 pixels, this is the command:

psf = airy_pattern(51, 51, 25, 25, 2./8.0)
isurface, psf

The output looks something like this:

PSF Airy pattern (StarFinder/IDL)

2. The IDL Astronomy User's Library contains a routine, psf_gaussian, that produces a Gaussian PSF. To produce the same as above, the command would be:

psf = psf_gaussian(npix=51, fwhm=8.0, /double)
isurface, psf

... which produces something like this:

PSF Gaussian (IDL Astronomy User's Library)