Call your provider. The Cellular at Sea company the ships use to provide service will charge you at international roaming rates. Those vary by provider. You all need to enable international roaming on your cell phone. This typically is done at no charge, but has to be done before you leave for your trip. Verizon charges $2.49 a minute for international roaming voice and $0.25 to send a text and $0.05 to receive a text. This is much cheaper than the ship to shore phone rates of the ship.
As for calling cards, I have never used one. The problem is finding one that you can use in every port. Make sure if you try this route you get a card that will work where you want it to and check to see what the international call rates are where you are going.
If you want to know the cheapest place to make a call is in any given port, just ask a crew member. They always know where the phone banks are that use the calling cards. For example, there is a "shop" near the pier in Cozumel that is on the back side of the tourist stores that the crew uses to call home. They offer international calling with minute packages that are much cheaper than a calling card or ship to shore...
Hope that helps... bottom line is that the cell phone is the least hassle, the carding card can be hit or miss. You have to do more research with them too. You could buy a $25 calling card only to find out that with fees and the local phone charges that will buy you 5 minutes....
Carnival Cruise Lines:
Fantasy 90, Celebration 95, Victory 05, Conquest 05, Spirit 6/06, Freedom 6/08, Holiday 7/08, Victory 6/09, Valor 9/09, Dream 6/10, Splendor 8/10,Conquest 8/11,Magic 11/11,Triumph 4/12,Spirit 7/12,Freedom 11/12, Triumph 2/13 - The fire cruise
NCL Dream October 2006, RCCL Mariner OTS June 2007