On the StackOverflow podcast, Jeff and Joel suggested that as an interviewer, going in having no set questions but just running through the resume is a bad thing. But in my role, I'm usually the technical interviewer, and I like to do just that -- I want the candidate to explain, in their own words, the architecture of each project they have worked on, and where the good, bad, ugly aspects of the architecture and the code were, and what they would do differently.
The other thing I am always listening for is a real understanding of OO principles. I have found that if someone has used interfaces, inheritance, etc. in their work, and knows intimately how to use them and talk about them, that is a sign that they have a really good grasp of software development in general.
This is the approach I use for interviewing junior to mid-level developers, and I have had a really good track record with it succeeding.