Just call the cruise line. I have done it twice the last year for a cruise out of my home port of San Diego. Press them for a deal about a week before it sails. They always have special prices, but you sometimes need to get the right agent at the cruise line.
I booked a 7 day Ryndam last March for $499 a person including all taxes and port charges. This was 5 days before the cruise. Our dinner table was made up of only passengers who booked late. One paid $488 total. We all got outside cabins too.
Last January I got a 10 day Mercury to Mexico for $749 a person total, all taxes and port charges included.