At the conclusion of each session, each player rolls 1d20 for his character. On an adjusted roll of 20, the character gains a level. The roll is modified by +1 for each previous failed leveling roll at this level only.
It's an interesting alternative, especially for treasure-poor campaigns, which is what Geoffrey runs. I might be tempted to use the 2d6 method, though, for faster advancement: if you roll doubles, you advance.
A suggestion to make advancement harder for higher levels or weaker challenges: add the highest HD creature defeated to the roll and beat your current level (or level +20, for Geoffrey's method.) You're third level, and wipe out a bunch of goblins: roll 2d6, and if you get double 3s or higher, you advance. You're 6th level? Sorry, you won't advance fighting 1HD monsters unless you roll double 6s.