This is pretty much what I've always done - describe the sort of problems they're likely to encounter in the role they're being hired for, perhaps mentioning a few challenges we've had (and possibly already solved), and ask them to explain how they would solve the problem. It's pretty difficult to bullshit your way out of answering a real problem.
Other than adding in some rudimentary skills tests (say, FizzBuzz + walkthrough writing the code with them), and checking if they've developed anything out of their own initiative, I can't see why you'd bother asking anything else.
I really like the theory of this, but in practice I have a hell of a hard time figuring out "real problems" for which the explanation and solution would occupy less than an afternoon.
Other than adding in some rudimentary skills tests (say, FizzBuzz + walkthrough writing the code with them), and checking if they've developed anything out of their own initiative, I can't see why you'd bother asking anything else.