How do you know the programmer you are interviewing is the best of the bunch?
I'm talking about natural programming talent. The best programmers will pick up new technologies fast and be using them in an innovative, imaginative and logical way. They will write clean logical code that rarely fails and is easy, even pleasing, to follow.
Most interview tests can be passed by reading a textbook and having a little experience. They don't weed out the truly good programmers from the ones who learn programming parrot fashion.
For me, an interviewer needs to test the interviewees problem understanding and solving techniques as this underpins any good programmer. I think a good way of doing this is via logic games.
Blocked Car/Parking Lot
The user has to move other cars out of the way to get the yellow car out of the parking lot. This exercises the programming problem solving muscle. The user has to think about many factors as the levels get harder (e.g. I need to move the red car, but to do that I have to move the blue car, but I cant because....)
Here is an example - http://www.funatico.com/flash-games/yellow-out-2042.html
River Crossing Puzzle
A classic logic puzzle. The user has to get a group of people from one side of a river to the other, but the boat cant take them all at once. There are several rules restricting who the people are happy to be with that restrict the order they can be moved. This is the sort of problem common when programming. The core task is simple, but restrictions in the environment or business rules add complications.
Here is an example - http://www.smart-kit.com/s888/river-crossing-puzzle-hard
I'm not suggesting this is the only test you should try, or even the best, but it at least tests something that is nearly always missed.