I agree with you that this is something that is very hard in our industry. It is increasingly getting more difficult for reasons beyond my knowledge. Therefore, I don't think you're going to find a simple answer. As you look around this site you'll see that different renditions of this question has been tackled before. All I have to offer is the following so please be gentle... :)
In my personal experience, a programmer can be an absolute STAR in an interview but turn out to be a horrible disaster once hired on. The reverse is also possible, where the programmer might not be able to communicate effectively with text book interview questions, but in a real world scenario they are priceless!
What this boils down to is that interviews are hard because they don't tell the whole picture. It seems that anymore, you have to know somebody, who know's somebody else... who recommends this person because of whatever reasons.
I guess this translates to the only sure fire way to know whether somebody is good or not is:
- You've worked with the person before
- Or... you trust somebody that has worked with the person before