St.Thomas and St.John have some awesome diving and snorkeling. Staying St.John would require a car rental to see all the great beaches, way easier and cheaper then taxis. If you stay in the Red Hook (east end) of St.Thomas, most of the hotels have snorkeling on or close by.