Once the boat sails, any empty room is money lost, especially when you consider that room cost is only a portion of the money a cruise hopes to make from a customer. Even if you pay nothing to stay and eat, the cruise hopes you'll spend money on drinks, onboard shopping, on-island tours, extras like photo processing and, most especially, in the casino.
So, as sailing times near, haggling gets more productive. Ideally, you'd show up at the dock with your bags packed. Barring that, it's worth asking a phone operator for last-minute deals. Then be aware of the extras. Start by asking for a free room upgrade -- putting you in an empty window room costs the cruise line no more than putting you in the ship's interior. Then ask if the price includes a certain amount of onboard spending, coupons, tours, etc. Tacking extras onto the purchase price can turn a good deal into a great one.