I've cruised three times with my iPhone. The carrier will show at the top of the phone. Everytime I've been in port, it has automatically switched over from Cellular at Sea to the local carrier.
International Roaming - Voice (also called AT&T World Traveler) gives you slightly reduced per minute calling for $6.
If you want to use email/internet/Apps, you need a data plan called International Data - Roaming (also called Data Roaming Add-on). It ranges in cost from $25 to $200 depending on how much data is in the package. The 20MB for $25 would probably be enough for your cruise.
You must be very careful to turn Data Roaming on or off as needed or you will incur unexpected charges (to do this, go into the settings on your phone, go to general, then to network). Also, reset your Usage at the beginning of your cruise so that you can track how much data you have used (to do this, go into settings, then general, then usage, and press reset statistics at the bottom). You can check your usage as you use your data to make sure you don't go over your limit.
It sounds a little complicated at the beginning, but it isn't bad. My first time doing all of this was last summer on a European cruise. I had complete cell phone coverage and email the whole time. I never incurred any unexpected charges. It was wonderful.
By the way, the fees are pro-rated. If you cancel during your billing cycle after your cruise, you are only charged for the part of the month you used it. You just have to remember to cancel it immediately after your trip.