The best way to get the lowest rate on a cruise is to book very early.
We homeschool, so we're very flexible with when we can go, so when I was planning our cruise I went to Expedia and checked every month for the lowest price. I was looking in May and the best rate was for the next January, so that's when we went.