When I worked at a BMW dealership as a lot attendant, the in-house detailer showed me a little trick. It was mostly for removing tree sap and sticker residue, but it took anything unwanted off of the glass, including water spots.
Apply glass cleaner, very liberally and let it stand for a moment, then use a steel wool(not the brillo pad, or the scotchbrite, just plain ole' steel wool) to gently rub the affected area. As you are rubbing, make sure to keep the glass cleaner in your hand and spray often. As long as the glass remains lubricated, there are never any scratching issues. If I was doing a whole window, I would tape it off to make sure i didn't hit any metal with the steel wool.
This always worked for me on the dealerships cars and my own, but try at your own risk, and never, ever use this on the inside of a window with a defroster of the inside of a window with aftermarket tint.