Adobe Photoshop has a very nice tool called the ‘Dust and Scratches Filter’ which allows you to remove a great deal of dust and scratches very quickly.
Before using this filter, you need to sharpen your image. Then duplicate the Background layer. Name it Dust and Scratch Removal.
Select Filter from the main menu. Then go to Noise and select Dust and Scratches. This will bring up a dialog box with two input sliders. Set the Radius slider to 1 and the Threshold slider to 0.
The way this filter works is that it looks for small areas of high contrast that are likely to be dust or scratches. It then blurs that area with information around it so that you can’t see it anymore. The Radius slider determines how much blurring needs to happen in order to remove the dust and scratches. So move the slider to the right until you see the dust and scratches disappear. You may also notice that much of your picture looks blurry as well. Fear not, the Threshold slider will allow us to rectify that problem.
The Threshold slider allows you to control how blurry the overall picture is by controlling how much the difference in contrast must be present before any blurring is applied. When Threshold is set to 0, it is applied to the whole image. What you want to do is slowly drag the Threshold slider to the right until the dust starts to reappear and then go back to the left just before that point. This should result in a happy compromise where the image is still sharp but most of the dust is gone. This tool will not fix real heavy scratches. Use the clone and healing tools for those.
Then, create a layer mask by clicking the little circle in a square option in the bottom of the layers palette. It will appear entirely white indicating that the mask isn't applied at all. Hit Command/Control + I to invert the mask so that it is entirely black. Then it is fully masked off. Then use a brush with a white foreground color to paint over the dust specks. This will effectively allow the cleaned up layer to show through. This works especially well in areas on even one such as skies.
Alternatively, if you don't want to use a layer mask, you could use this technique in conjunction with the History Brush tool. Basically, you apply the filter, then take a snapshot of the image, then undo the filters application. Then use the History Brush to “paint” in the corrections only on those areas of dust and scratches. This insures that the filter doesn’t obscure any areas of detail that it incorrectly identified as dust.