I have only stayed in South Beach one time and I would not recommend the hotel I stayed at, however if you find a hotel, especially a good chain hotel, on Collins you will only be one block off the beach and there is plenty of shopping and restaraunts in the area. We were there for three days before our last cruise and found plenty of interesting things to do and see.
We are booked in a Holiday Inn and Suites on Collins for before and after our next cruise. This was near where we stayed last time and it was a nice area. We booked this one through Priceline the last one we booked through Hotels.com and it was not a chain hotel and it was a real dump. It was supposedly a three star hotel but I would have had trouble giving it a half star. It was in a nice area just a bad hotel. It was the Geneva Hotel and Suites.