Lurking and posting answers is a good way to learn the system and what's expected of you as a Stack Overflow/Super User/... participant.
So allow users to post their first question "free of charge" - after all they've come here because they've got a problem.
Then don't allow them to post again until they've done some/all of the following:
- registered
- filled out their profile
- accepted an answer on their first question (assuming it had answers of course)
- responded to comments by editing their question
- answered some questions
- received up-votes for their first question
- received up-votes for some of their answers
- ...
There would need to be IP logging, e-mail checking etc. to prevent users just posting using a new ID & probably some other stuff I've not thought of.
While it won't totally prevent bad questions from turning up it should slow down the rate at which they do to a manageable level.