If you haven't been cruising before and are not familiar with the area I suggest booking through the cruise line. Also attend the trip briefings and shopping guides. They give excellent tips and help you from getting ripped off from the locals. The cruise people have discount coupons and expereince. If you know the area you can probably do better, but in general being a newbie, let them do the leg work.
Do research first before you go. For example, we passed up diving in Grand Cayman because the cruise dive trips were full. We opted for a snorkle tip instead. However, Grand Cayman has a bunch of dive operators and could easily have booked one of them. Alos, talk with the seasoned cruisers at dinner or the lounges. They have good input as well. jim