I would definitely recommend taking a cruise out of Miami. They are usually cheaper and more variety. I personally love Royal Caribbean. Also, I'm not sure where you're flying from but I usually fly into Fort Lauderdale because it's considerably cheaper as well. You can easily take a shuttle straight to the Miami Port from FLL. Also, you can stay in Miami Beach or South Beach. If you stay in South Beach (Central, Collins Ave or Ocean Dr), you can walk to the main area with shopping and dining which is Lincoln Rd. There's also another small area called Espanola Way that's also close by. You can also stay in Miami Beach which is a quieter cleaner area, usually with beach access. And you can take the bus straight down to South Beach for 2 bucks (about 10 min).