I highly recommend booking through a travel agent. Most often, depending on the cruise line (and their pricing policies) you can get a better deal on the cost of the cruise, PLUS you get someone who is acting as YOUR agent, rather than someone who works for the cruise line selling you their product.
An agent provides you with service, answers your questions, and gives you somone to take your "case" to the cruise line should it become necessary.
For cruises, I don't find Orbitz or Travelocity offering very good deals anymore. There are lots of agencies offering better deals.... though with today's cruise line pricing policies you have to call or e mail to find out their best price. Simply checking web sites doesn't show their best available prices.
And there's certainly no penalties booking with a travel agent no matter how many times you cruise with any cruise line.