After one too many instances where a set of bad rolls led to a Fighter with real problems doing his job (such that it was affecting the enjoyment of the game - I like my D&D heroic), we instituted a fixed hit points scheme:
d4 - 3 per level
d6 - 4 per level
d8 - 6 per level
d10 - 8 per level
d12 - 9 per level
Characters get maximum hit points at 1st level, and Constitution modifiers apply, as always.
As an aside, we also use point-buy for ability scores, and maximum starting cash for 1st level characters. I really don't like random elements in character development.
Of course, all of the above only applies when I'm running the game (which is most of the time); the group's other DM likes randomness.
It's probably also worth noting that I'm considering dropping to just over average results for the next campaign (d4 - 3, d6 - 4, d8 - 5, d10 - 6 and d12 - 7), and average starting money. The higher values are fine (even good) at low levels, but do seem to create exceptionally tough characters at higher levels.