Updated July 22, 2023
Many hotel guests don't consider housekeeping a tip position, so anything you leave a hotel maid is a lot.
But a rule of thumb is to tip $2-$3 per night, or more if you're particularly messy, have kids or more than two people in the room, or are in a suite or timeshare with a kitchenette or full kitchen that a housekeeper also has to clean.
We used to recommend tipping every day. Your housekeeper on Saturday might not be your housekeeper on Sunday (and housekeepers make the lion's share of the tips on Sunday, because that's the day most people check out). And if you're tipping and not checking out, it's best to leave a note with the money: "Thank you for cleaning today." If you don't and there's no tip envelope in the room, the housekeeper might think you just left some money lying around and won't touch it.
These days, however, when daily housekeeping services are no longer the norm, leaving the tip just before checking out might be the first chance you get. We like to leave the money under a pile of pillows. The housekeeping supervisor or porter might check on the room before the housekeeper gets there and they could help themselves to the money.
If you call the front desk or housekeeping to have someone bring up extra towels or a rollaway bed, or makes a special trip to provide some service you've requested, a $2-$5 tip is appropriate.