My preferred method currently is to give the players average, rounded up for the first ten hit dice. I originally did this because our group was experimenting with Savage Species, and with big level adjustments factored in (where characters may go two or three levels without gaining more hit poins) a character can be crippled by a bad die roll.
But really, I don't see what's gained by rolling. These days I think it's safe to assume most DMs handle character generation by allowing a player assign their rolls to whatver ability scores they like. So if you want to play a barbarian, you can assign that 16 you rolled to Strength instead of that 8 you rolled first. Now, if you want to play a barbarian, and you keep rolling 1's and 2's on your hit dice, isn't that just as lame as having to play a weak barbarian or stupid wizard just because that's how the dice fell? In fact, isn't it even lamer, because you're actually getting more and more invested in a character that's looking more and more like a waste of time?
And conversely, characters that consistently roll above average can be unmanageable. I played one such character, who at 24th level had 200 more hit points than the next closest character (another fighter/barb). Some of that had to do with being a high-Con dwarf, but more had to do with just rolling amazingly well. Long before 24th-level, the DM was having trouble scaling encounters to challenge the party, because I could laugh at things that would annihlate 2/3 of the group.
Why should hit points be any less consistent of a benefit than skill points, BAB, or saving throw bonuses?