You can also prepaid a reservation easily on most travel website. I have been to Bangkok with a colleague earlier this year in January, and the cheapest sofitel rate we found was on United.com. So, we pre-paid the money through the website. I think they allow the room to be cancelled, but you have to pay a cancellation fee. The policy is different from hotels to hotels though, so you better check. Also, it differs from time to time, say Mandarin Oriental Hong Kong requests a week's notice if you're canceling a booking on New Year's Eve.