Water spots are microscopic etching of the paint caused by contaminants in the water, minerals, acids, etc. Try adding a little baking soda to the wash water or just use a good car-wash soap, not dish soap.
I had them, the dreaded spots on my last car - very noticable on black.
The first thing to try would be a good polish like Meguiar's Show Car Glaze #7 which is very mild. If that doesn't work, try 3M Swirl Mark Remover. Above that, your into the "compound" level of abrasive, a place I wouldn't go unless you had no alternative.
Both of the aforementioned products are mild enough that it will require a fair amount of elbow-grease and perhaps several applications to achieve the desired effect.