I've found that the rates vary greatly between different sites, so lots of searching can provide a pretty wide range of prices. With the online bookings, you often have to pay for the entire stay up front to get a good rate (and you have to read their cancellation policies closely).