There are two main ways to get a rock-bottom price on a cruise:
1. Book about 18 months out (as soon as the dates become available). Then watch your cruise online to see when they have a price drop; when it happens, call in and ask for a price match. This benefits you in a couple ways: First, all rooms aren't equal, and you can get the best locations. Second, cruise prices tend to start out moderately high, drop a bit, and then skyrocket 6-12 months out from the cruise (because that's when most people think about booking).
2. Book at the last minute, after the early-bookers have made their final payments. The cruise line doesn't want to sail with a single empty cabin -- not only do they not get the ticket price, they won't sell drinks, excursions, photographs, or tee-shirts to empty cabins. They will deeply discount the remaining rooms just to get someone in them. However, this comes with a big risk: In prime season, often NO cabins are left empty. Even in off-season, the cruise line is likely to give early-bookers a "bump up" to a suite or balcony cabin, leaving only poorly-located cabins or inside cabins available. I personally never book this way because our dates are usually quite in-flexible, and I don't want to be disappointed; for someone with different circumstances, it could work out well.
Those major points made, here are a couple ways to decrease your cruise bill:
1. If possible, book a port to which you can drive. Cutting out airfare is a HUGE savings. Pick a night-before hotel that'll allow you to leave your car in their lot for free while you cruise.
2. Consider off-season. Caribbean weather in September-October-November is WONDERFUL, and you'll pay much, much less. Similarly, avoid holidays. Holidays are going to demand a premium price, and instead of most cabins holding the standard two people, many will have kids on the sofa beds and pullman sleepers -- the result is a crowded ship. I personally will never sail on a holiday again.
3. Book a moderate room -- don't get caught up in the "If I can't have a balcony /suite, then it won't be good enough" mentality. I've not sailed in an interior room (I'm a bit claustrophic, and although I know it's not logical, they freak me out a bit), but an oceanview room usually less expensive and you still have the run of the ship.
4. Keep your options open between the cruise lines and weeks you might travel. Many people here are saying that Carnival is cheaper -- last summer we sailed
Royal Caribbean, and it was several hundred dollars cheaper Carnival (of course, we were only looking at Royal's nicest, newest ships and Carnival's nicest, newest ships -- if you look at Carnival's older offerings, you'll see those cheaper prices, but you're not going to get all the amenities either). Because of a fantastic sale, we ended up switching from Royal Caribbean's Freedom of the Seas to their Liberty of the Seas; we had TWO connecting oceanviews for 6 people . . . with the sale, we moved to THREE balconies and our bill went DOWN.
So look around. I personally prefer to do that myself (rather than having a travel agent do it for me). Why? Because I know what I'm willing to switch. A travel agent probably wouldn't have called me with the above-mentioned deal. The travel agent wouldn't have thought I'd have been willing to move to a much farther port city AND change room categories.
5. You can save MOST with the above hints -- booking the right room, right time, etc. But you can also save onboard. They'll offer you something at every turn: Drinks, excursions, photographs, gold by the inch, gambling, specialty restaurants, bingo,etc. Keep in mind that these are all just icing on the cake; you can have a great time without buying into any of these extras. Decide ahead of time what you are willing to spend, and stick to it.
The one thing you MUST pay onboard is your tips. Other than that, you can keep your wallet in your safe and still have a great time, eat well, and take advantage of great entertainment.