Depends on what you are after. Penny and Susan make good points for booking long enough ahead of time to be able to plan for the expense. I have done it that way, I have also booked one cruise the week I returned from one. That was only two months out. So I guess, it depends on if you have a specfic date in mind or you are trying to catch a deal.
As Penny points out, sometimes you can get great deals on "short notice" prices. Short being 2 to 3 months. I have also seen some great prices on "past cruiser" discounts from Carnival. These are typically short notice, but can be as far out as 6 months. If you can vacation with little notice, go the "specials" route and have your vacation planner call you when they are running a special. If you have childern in school (like I do) you may want to book ahead and look for deals. If you can find a good price before the money back cancellation deadline, then you can cancel the booking and change to the deal.
You may need to book ahead for popular cruises like those to Alaska. The good cabins fill up fast on those, we booked our June cruise back in September.
If you live close enough to a cruising port (like I do) then you could also try just showing up at the cruise (packed of course) and seeing if they have any available cabins. During non-peak cruise dates, I have HEARD that you can get a great deal doing this. I have not tried it, but maybe someone else out there has and can inform us if it works or not.
Carnival Cruise Lines:
Fantasy 90, Celebration 95, Victory 05, Conquest 05, Spirit 6/06, Freedom 6/08, Holiday 7/08, Victory 6/09, Valor 9/09, Dream 6/10, Splendor 8/10,Conquest 8/11,Magic 11/11,Triumph 4/12,Spirit 7/12,Freedom 11/12, Triumph 2/13 - The fire cruise, Magic 1/14
NCL Dream October 2006, RCCL Mariner OTS June 2007, Celebrity Silhouette 2013