I would say to ALWAYS use a travel agent for cruises, because they will give you part of their commission as either a discount or as an on-board credit, depending on the cruise line's rules.
As MoreMilesPlease noted, use
cruisecompete.com to see what kind of deals you can get. Just read the fine print about any cancellation and change fees.