Personally, I like Hotwire. Great for hotels and good for cruising. They always have you assigned to one person so there's no waiting for 20 minutes to speak to a customer service rep at other sites. Just watch the pricing....make sure port charges are included in the price quoted.
We've had very good luck with cruise.com too.