If you are a new cruiser I would completely recommend that you book through an experienced agent. They are the ones who will honestly answer your questions and know "little secrets" about many ports of call and any additional charges you may have during the course of your cruise. i.e. surcharge restaurants, general drink prices, cabana rentals on private islands, etc.
I still book most of my cruises with a travel agent. I have booked directly with the cruise line on a couple of occasions. These mostly involved grabbing a "specific" cabin that was available and my agent was not available or their assistant didn't return my call and I didn't want to lose the cabin. The last instance was when an aft balcony cabin popped up at the last minute. Those don't last long.
These days I am an easy client. I call and tell the agent what ship, cabin, date and itinerary I want and what the price is. If they can't match the price then something's wrong. Not too much work for them in the booking process.
One big problem I find with travel agents is that many experience the "Curse of riches". This is when the wonderful agent who returns phone calls within minutes, provides great information and will spend time researching cruise options, grows too big. The wonderful service they provided leads to a number of referrals, more clients and the agent can no longer spend the time they once could on a client. They grow too fast and their service suffers from it. New clients are frustrated and old clients are disappointed. This is a common problem in almost all businesses but I have seen this in the "franchise" agent market a lot lately. Uncontrolled growth leads to failure and GOOD agents become bad agents. This results in the loss of new customers and old customers. Nothing bothers a veteran cruiser more than recommending their wonderful travel agent only to hear back that the agent was terrible. Being a cruise agent is a hard job and I feel for them but when I am spending thousands of dollars I do expect a consistent level of service. If that service drops off I will take my business elsewhere or eliminate the middleman and go directly to the cruise line.