I doubt that you will find any filters that will automagically fix your images; for the most part you will need to do things manually. Especially since you are dealing with B&W photos, there is little difference between a "scratch" and a "white line" (much as with weeds and flowers, the difference lies within the eye of the beholder). The following technique, however, will make the task of removing scratches easier to accomplish.
THEORY
The goal is to separate the texture (or graininess) of the photo from its overall contour. In frequency terms, we are separating the high frequency data from the low frequency data -- "scratches" are exhibited as rapid transitions from a dark region to light region (i.e., high frequency) and if we isolate our changes to only the high frequency component of the image then we will destroy less of the useful information. Of course there is some high frequency image content that does not qualify as scratches and it is important that we leave as much of that information intact as possible.
If you are at all familiar with vinyl record albums, the situation is quite analogous to reducing the audio popping and crackling produced by scratches on an album: you would reduce the crackling by turning down the "treble" tone control (which reduced the high frequencies while leaving the low frequencies intact). This had the side effect of also dampening other high frequency content which might be desirable (cymbal crashes, piccolo solos, etc), but the result was generally more pleasing than with the scratches. One could also only reduce the treble during parts of the album that contained scratches, leaving the rest of the audio in its original state. This is what we will be doing with the image -- we will only remove high frequencies from parts of the image which contain scratches.
SEPARATING THE CONTENT
First, we need to separate the high frequencies from the low frequencies.
[*:1q46n4lu] Duplicate your layer and rename the new layer to "Contour".
[*:1q46n4lu] On the Contour layer, perform a "Filters->Despeckle" with the Adaptive and Recursive boxes unchecked. Set the Black level and White level to "-1" and "256" respectively. Set the Radius to the lowest value which still removes your scratches (for the image provided, I used "3" for my Radius).
What you see in the image window is basically the low frequency content of your image. If we "subtract" this low frequency content from the original image, we are left with the high frequency content.
[*:1q46n4lu] Set the Mode of the Contour layer to "Grain Extract".
We now need to get the high frequency content (what we now should see in the view window) as a separate layer.
[*:1q46n4lu] Perform an "Edit->Copy Visible".
[*:1q46n4lu] Perform an "Edit->Paste".
[*:1q46n4lu] Perform a "Layer->New layer".
[*:1q46n4lu] Rename the pasted (top) layer to "Grain".
We now have the two layers we need ("Grain" and "Contour"); we just have to set things up so that they combine together to form the original photo.
[*:1q46n4lu] Set the Mode of the Grain layer to "Grain Merge".
[*:1q46n4lu] Set the Mode of the Contour layer to "Normal".
If we compare the result to the original, they are the same. (The original layer is no longer needed, but should be retained for reference.)
EDITING THE SCRATCHES
Now comes the hard part (the preceding was easy, I just made it seem hard because I wanted you to understand why we did it). The goal is to make the light parts of the Grain layer more gray, except that we only want to do this to the light parts
which should not be light -- some of the light parts actually are supposed to be light. This is where the human element is needed (to decide what parts don't belong).
Several of the Tools available will help to reduce the scratches from the Grain layer, and you will find that different situations will require different methods. The most useful tool is the Clone tool, particularly when removing scratches that are long straight lines.
You will also find that it is useful to switch back and forth between viewing the Grain layer itself and the final result. This toggling can be accomplished by holding down the SHIFT key and clicking on the Grain layer's "eyeball" in the Layers dialog.
For example, let's remove the scratch that runs from the top of the image to the bottom and passes just behind the back of the lady's head.
[*:1q46n4lu] Activate the Clone Tool and choose the 3x3 circle brush (or perhaps the 5x5 fuzzy circle).
[*:1q46n4lu] Position the mouse pointer just to the right of the scratch (at the top of the screen), hold down the CTRL key, and click. (This sets the source region of cloning.)
[*:1q46n4lu] Position the mouse pointer over the scratch at the top of the screen (just to the left of the source mark) and click.
[*:1q46n4lu] Move the mouse pointer to the bottom of the screen (and over the scratch), hold down the SHIFT key, and click. (Holding SHIFT while using any paint tool connects the last point painted to the current position with a straight line and paints along that line.)
If you view the final result, the scratch should have disappeared. If you were viewing the Grain layer by itself then you may have noticed that we effectively replaced the scratch with a copy of a thin strip of the layer adjacent to the scratch. This happened because the source region used for cloning follows the same relative mouse movement of the destination as you "paint" the clone -- since you "painted" a straight line from top to bottom, the source region likewise extended from top to bottom.
A similar technique can be used for curved scratches (such as the one to the right of one we just removed), except you will wish to hand draw over the curved scratch so you can follow the scratch. As long as you choose your source region to be adjacent to your scratch, the motion of your painting over the scratch will result in a source region being followed which generally has a texture very similar to what should have originally been present in the scratch region (were the scratch not there). Since you are only modifying the texture (not the low frequency contour), there is less "damage" done to the resulting image.
For smaller scratches and specks, you might find the Blur(/Sharpen) Tool useful. Just paint over the specks and watch it fade away (you might wish to decrease the Rate to "25" or less to provide finer control). Likewise, the Smudge Tool can also be effective. In all cases, you are only painting on the Grain layer; leaving the Contour layer in its original state.
In some cases, you could select a region (with feathered edges) and use the Gaussian blur filter to smooth out the wrinkles; though this will tend to remove the film grain or other important details of the photo if overdone.
SUMMARY
While this technique does not sound like much of an improvement over just manually cloning the image, it provides you with quite a bit of margin for error and tends to blend your changes in more discreetly. With a bit of practice, I think you will find it to be a relatively quick and effective method.
Everybody makes their own fun. If you don't make it yourself it's not fun, it's entertainment.