We were just on St John last week! We had a super time hiking, snorkeling and relaxing.
We stayed here:
http://www.calabashcottages.com/sago.htm
It's on the east end of the island.
If you don't go the villa/private home way, Caneel Bay Resort was WAY more impressive than Gallows Point or the Westin. The Caneel Bay has multiple private beaches that are just beautiful and the grounds are lovely. The Westin didn't impress with either.
The majority of the island is national park, so make sure to check out some of the NPS organized activities. We did the Reef Bay Trail walk with a ranger and it was really fun.
I recommend reading restaurant reviews on TripAdvisor.com. I found those really helpful.