We've been to St. Thomas twice cruising. Our first trip we took a taxi tour of the island and ended up at Coki Beach. The second trip we took a ship excursion to St. John's Trunk Bay, which was nice, too, but I think I preferred Coki. So, we're headed back to St. Thomas again in October, and we're going back to Coki.
You can get to St John's on your own. No need to a ship excursion and I understand that if you do the ship excursion you only spend a short time at the beach and it costs way too much. I dont recall how to get there but am sure you can research it somewhere on the site. We took a cab (shared with others) to the ferry docks. Ferry takes you to St. John and then once there another cab (shared with others) to Trunk Bay or whichever beach. Sorry but having been to Coki Beach, I would only go back to Trunk Bay regardless of the slight hassle of getting there. It is considered one of the most beautiful beaches in the world.
We've only visited about a half dozen beaches there, and actually prefer Cinnamon over Trunk Bay. In fact, the "background picture" of our wedding invitations came from a picture we took while at Cinnamon. This next cruise, we want to visit even more beaches we have not been to yet - hopefully some that require a hike.
We've spent the day on Magen's Bay before, but St John offers many beaches along the north shore, so you can easily (and quickly) go from one beach to another. Each beach seems to have something unique about it (refer to www.vinow.com).