People that honestly want to learn and improve themselves ask intelligent questions. Even through a language barrier, you can often notice someone who is just as interested in understanding their problem as they are in fixing it. When you encounter these people, give them as much knowledge and insight as your time and inclination permits. Remember, it's not just the question author that you'll be helping.
Then, you have those who simply don't care why something is happening, they just want their code to run as quickly as possible. They won't be thankful for the explanation, they'll be thankful that no more effort is required on their part. These "help vampires" will continue to feed on the motivated until someone sours the proverbial milk. Don't waste your time on someone who doesn't appreciate it.
In the middle of that, you get the rare exception of someone who really does want to learn but simply can't articulate their problem. Some people need to initially ask what to ask because they are intimidated by a mile long stack trace.
It is hard to write some kind of guideline, but you can identify the vampires by some (or all) of the following characteristics:
They don't read, reading is like sunlight to them. They start with the minimal effort required and work their way up from there. If you feel like the asker has put most of the responsibility for solving their problem on you, you're dealing with a vampire.
You rarely see the word why come out of a vampire, usually it's what or how. Words like "should" tend to solicit thought provoking responses which are painful to help vampires.
Vampires usually have a heightened sense of urgency, after all - they're hungry! If most of the question is an explanation as to why humanity might end if they don't get an immediate answer, you're dealing with a vampire.
Help vampires are surrounded by the carnage of under appreciated wisdom and knowledge.
Your time and expertise are your gifts to give. If you think that you can help someone while teaching them something, spend as much effort as you'd like. If some background helps to illustrate your point then go ahead and provide it.
Just spend your time on those who will likely take something more than a 'quick fix' away from the experience.
There are easy questions from seasoned programmers, many of them trying to debunk a regular expression or troubleshoot a memory error. But, those really don't fall into this particular category.