I normally book in advance if I'm going somewhere that I know will be busy, or if I am arriving late at night or early in the morning after a long flight and I know I won't be in a fit state to wander around looking for accommodation. Or if I'm going somewhere I've been before and want to stay in specific accommodation.
Otherwise I'd rather see a room before I agree to take it. You can always check the online price, and haggle once you're seen the room and decided you like it.
I almost always pay in cash overseas. On a long trip I might not be able to access my credit card bill every month, or be able to contact my bank without a lot of hassle and expense.

