The best rates are typically in May, September, October, and early December.
May is just after all of the Spring Breaks have been completed, but before the kids get out of school for the summer.
September and October are during the peak of Hurricane Season, so some people will avoid booking a cruise during this period. No reason to worry... the ship will avoid a storm at all costs, but it does mean that modifications to the itinerary are sometimes made.
Early December is a lull because so many people cruising that time of year want to go at Thanksgiving or Christmas.