Another popular variant on the method Crothian uses is to leave things "open-ended". It's been discussed on the boards before.
On a natural 20 [amazing success], treat it as a 20, but roll again and add the result of the die. Keep rolling and adding if the player continues to roll 20s.
For a roll of 1 [critical failure], treat as 1 (or 0, if you like), but roll again and subtract the value of the die. If a 20 shows up, roll again and keep subtracting.
This allows for a very small chance for an amazingly good or amazingly bad result, to model the situation where everyone is sometimes capable of amazing things (good or bad).
Personally, I just use the rule as-is in the books, but I wouldn't mind playing with the rule Crothian mentioned or the open-ended variant.