How to Hire
I think Aaron Swartz’s explanation of how he hires programmers is pretty applicable to hiring anyone. An excerpt:
There are three questions you have when you’re hiring a programmer (or anyone, for that matter): Are they smart? Can they get stuff done? Can you work with them? Someone who’s smart but doesn’t get stuff done should be your friend, not your employee. You can talk your problems over with them while they procrastinate on their actual job. Someone who gets stuff done but isn’t smart is inefficient: non-smart people get stuff done by doing it the hard way and working with them is slow and frustrating. Someone you can’t work with, you can’t work with.
I think what happens often (at least in the marketing industry) is that people move too far to “can you work with them” side and fail to pay enough attention to the other two buckets.

Hi, I'm 
you should read the original.. here:
http://www.joelonsoftware.com/articles/fog0000000073.html
:)
Arron beat me to it.
I think these will get you far, but far from finding A-players. I always want to know now:
* Do they care
* Are they curious
And then I always ask the same questions:
How do you expect this job will help meet your current professional goals
How do you expect this job will help you lifetime career goals.
There’s not much mention in this article to preparation before the interview. I always write down what the key things necessary to thrive in the position and hit the ground running quickly.
I like to find out if they are ambitious, do they want to know more, have advancement etc….
I’ve added a third aspect and that is passion. Smartness is relative and can be improved on some level. Ability to do the job is also something you can improve to some extent, but passion for the work is something you can’t buy or educate into someone. You either have it or don’t.
If all three of these match, usually beautiful things start to happen.
Cheers