Hi guys,
I'm a professional glass restorer and am constantly removing hard-water stains from car/boat windows, shower screens etc...
For stage 1 glass corrosion (95% of windows will have at least some of this), I use a product called Winsol Crystal Clear 550 (CC550). This usually removes most of the stains with ease. It works by dissolving the mineral build-up and is the quickest and least messy way of completing the job.
For more stubborn water spots (you can do it this way for light stains too), I use cerium oxide powder which is mixed with demineralised water to form a slurry. I then use a felt pad and polishing tool to polish the stains out. My polishing tool is worth over $1500 but for the DIY guys, you can use a felt pad (purchased from your local hardware store) attached to your household drill and remove the stains this way. It's a lot quicker than polishing by hand but if you have to go down that road, use Superfine Steel Wool (0000 gauge). This is abrasive enough to remove the stains but will not scratch the glass. I get all my supplies from these guys as they are the cheapest around http://fcwc.com.au/shop
Once the glass is restored, I apply a product called Sani-Shield which offers a lasting protection for up to 12 months from the hard-water stains forming again. A cheaper option is RainX
To clean the glass/window/shower screen, simply use soapy solution. You don't want to use anything too harsh otherwise you may compromise the protective sealant.