Alpha stage of development - we've only just begun!
It gets confusing - some pundits are saying to wait for last minute deals; whilst others swear by booking early. Meanwhile prices are chopping and changing, with specials flying by the radard screen (yes, cruise lines are ALWAYS offering specials, and it takes some skill to discern the true deals from the run of the mill specials).
The fact is that most cruise ships sail full-up of passengers, and the price of the cruise generally increases as the ship fills up, so that the most expensive cabins are sold last, and those booking last get the worst deal. Of course, for those cruises which don't fill up, some remarkable last minute deals may be obtained; which is great if you have flexibility. The bottom line is that unless you have sufficient flexibility in when you will cruise, you should book as early as possible - that way you're likely to score a cheap price and get to sit at the metaphorical smart table with the cruise junkies. There are often early book deals when the new sailings are made available for booking...cha ching! The early bird gets the worm.
What about flights to the port, you may ask. Well, the same rationale for booking cruises holds true for flights as well - generally speaking, the earlier you book the cheaper it is.
The other huge advantage to booking early is that you can select exactly which cabin you want. This is a real boon for those with specific needs, e.g. for a disabled cabin or interleading family cabins. There are also some cruises which simply sell out really quickly, and one needs to book early or miss out; for example certain theme cruises, Halloween (a blast, with many passengers bringing costumes!) and new year cruises. If you've got a large group booking you'll also want to book early so that: (1) you get enough cabins of the right types (e.g. balcony), and (2) you may want the cabins to be next to each other. You get the pick of the staterooms, and near certainty that you'll be able to select the dinner setting of your choice.
For those of us with skinny wallets, it also gives more time to pay the cruise off - most cruise lines allow monthly payments - it keeps one motivated to go to work every day. And for those of us who are carrying a bit too much weight, it gives us time to work it off before the cruise (and then putting it all on again during the cruise!).
Some cruise lines offer to match any subsequent decreases in the cruise price, and if so you can be sure to get the cheapest price on the specific cruise.
Sometimes there isn't really an option, as to get enough leave from the office you need to give notice way in advance.
Don't let anybody tell you that it's crazy to book more than a year out - it also means there is more time to look forward to the cruise, and the anticipation is half the fun. Some people book cruises over 600 days in advance. Then you can sit and read and research the stops, and dream about your cruise. More time to make your friends jealous about your upcoming adventure, as you watch the clock countdown.
Be aware of what the cruise line's cancellation policy is, in case life happens; and be sure to take out travel insurance. Life can change in an instant, for instance there may be unforeseen health issues, and over a longer period there's a higher chance of something happening which may cause you to have to cancel the cruise. Also check what the cruise line's cruise moves policy is, in case moving the cruise to another date is a possibility.
For example, with Carnival Cruises' "Early Saver" specials the deposit is considered non-refundable, and if you cancel it is made available to you in the form of a cruise credit, less a service fee, which must be used within a certain time. Also, no name changes are allowed - so if you change girlfriends, you're sitting with a problem :) NB: Easy Saver sounds similar but is different to Early Saver.
It's quite common for people to book cruises on ships which haven't even been completely built - this is often pricier, as you're paying a premium to be one of the first on the boat.
If you're not sure exactly when you can cruise, for example you don't know in advance when you can take off work, then it's best not to do an early booking. At the other extreme, if you have a lot of flexibility then you may want to wait for last minute specials.