As Paul has stated, once final payment has been made, they usually will not reprice a cruise and will not refund the difference. However, this is one time when it pays to deal with a good agent as sometimes they have pull with the cruise line and can get onboard credit or upgrades - but not always, so don't count that as gospel.
But up until final payment due date, if the price goes down, your agent can almost always get the reduction, provided it's not for new bookings only or some other caveat involved.
As for 'when' to book a cruise, I'm assuming you mean what time of year? If that's the case, it really depends on where you're going. But if you're looking for the best rates, we prefer the 2nd - 3rd week in September as that's when we get good rates because everyone is going back to work and back to school. However, it is in the middle of hurricane season, so you have to be flexible and make sure you purchase travel insurance. Another good time is between Thanksgiving and Christmas. People want to travel for the holidays, but the time between offers some good rates since no one is traveling at that time.