I find that I prefer buying from my local travel agent who's primary business is cruises. They know the cruises I like and will keep an eye out for upgrades and other perks for me. Plus, I have someone to talk to if there are any booking problems.
Unlike airline tickets, you usually pay about the same price for a cruise whether you book on line or through an agent.
It's also good to know you're supporting a local business, someone who is involved in your community to help make it a better place. Internet travel agents don't donate to your local charities.