Do you have glasses that look as if they have a film over them when you hold them up to the light? Try soaking them for about an hour in warmed vinegar. Do not use boiling vinegar as this takes out some of the active natural power of the vinegar.
After you have soaked your glasses for about an hour or so, use your dish scrubby, any plastic type scrubby that won't add additional scratches to remove any additional film on the glasses.
If you find that the stain is still on the glass, then it most likely is scratches and not water or soap film. The best preventative measures you can take with your good glasses is to hand wash your glasses then this problem will not occur.