You should always book with an agent. If you book directly with the cruise line, they represent themselves. If you have any problems, they'll look after their best interest. If you have an agent and run into any problems, they can be invaluable as they represent you and they have resources not available to you. Plus, agents will look after you and should the prices drop, they'll get the new rates for you. Whereas if you book with the cruise line, the last thing they'll want is to let you know the price went down.
I could give you a dozen great reasons to book with an agent, but can't give you one good reason to book directly with the cruise line.
Bottom line; who will look after your best interest? An agent wants your business - the cruise line wants your money.