St. John is the place to be- Just head N out of town, and stop at the first beach. Work your way around the island, and you will find lots of great snorkel places.
Make sure you swim out to the tiny keys in the bays (islands). Very neat to circle them and see different things on all sides.
We did a boat trip out to another island, and to the big rocks on the British Island. Finished the day on some tourist-trap beach island (which was fun, but no snorkeling there). Was overall OK, but it was more of a drinks and shrimp cruise, where you could fall in the water twice. Boat was full of people who were not much in to snorkeling really, and the crew definitely catered to that style, despite our thorough questions before we boarded. I caught some flack for having a wetsuit and a dive-bag with our snorkel gear in it. Everyone else had a rental mesh bag they hung on the railing.
Here's a hint for the crews- Don't tease/hassle the paying clients if you want a tip.
If you are serious about snorkeling, I'd suggest finding a Scuba daytrip and going along with them.