The best way to avoid water spots, is to hand wash and dry in the shade. For 100% spot-free wash, use Optimum No-Rinse, and wash/dry one panel at a time.
However, rain can cause some fairly nasty spotting; especially if followed by intense sunshine.
Removing water spots generally depends on the chemicals or minerals that were in the water when it dried on your paint.
On glass, usually a good glass cleaner, such as Stoner, and a microfiber will take care of 99% of spots.
On paint - it depends on how bad the water spot is. For light spots, usually a quick detailer or cleaner wax (with microfiber) will remove. For spots that have eaten into the clearcoat, you'll need something more aggressive - usually machine polish/compound.
However, if you have a small area of spotting that normal wiping will not remove, ScratchX will do a beautiful job of cleaning it up; Trust me