The cruise terminals are very close to downtown, so anything is that area would be good. You might try priceline.com to see what kind of a deal you can get. Or if you are looking for first-class try the Hotel Coronado. One of the world's finest.
We stayed at the Best Western Bayside on Ash Street, a couple blocks from the port when we did the Spirit. From our balcony, we watched the ship cruise into port around 6 am, awesome to watch. They offer a complimentary breakfast at the restaurant adjacent to the them, free airport and port shuttle, a park and cruise package too. They even let our friends park their car next to ours for the 8 day cruise at $10/day.
We have also stayed at the Embassy Suites. This time we rented a car and dropped it off first at Avis. Avis has a free hotel shuttle. Embassy Suites charges $20/day parking!!! Sea Pointe Village is within walking distance for some touristy shoppping and great restaurants.
There is also a Hampton Inn very close and the Holiday Inn on the Bay which is right across the street from the port. If you do Priceline, I would recommend bidding only on a 4*, some of the 3* are not as nice as they say.
Teresa and Larry
#36-Carnival Splendor 9/16/12
7 night Mexican Riviera
#37-Allure of the Seas 11/11/12
7 night Eastern Caribbean