I don't know what your itinerary is....but if you include a beach, such as the all inclusive in Cozumel, then one can normally get a really good massage right there on the beach for about half the cost of a ship massage.
I agree about doing your own thing in the ports. Most ports are pretty safe and a taxi to the beach or shopping is much cheaper then doing a equal type excursion from the ship.
If you were to drive.....get a hotel that lets you park your car there for the cruise and shuttles you to the cruise port. Even with the hotel cost you save around $100.00 in port parking fee's.
hope these help