I have always used Woolite with Oxy carpet cleaner. It has worked really well to get water stains out.

My problem is that I can get the stains out easily, but can't prevent them. I have used multiple layers of Scotchgard, which helps some, but they still show up when something like a water bottle sits on them.