"Socratic method: Ask leading questions until you have some poor fellow's thoughts so tangled up that he feels like an idiot." - - Not an exact quote, I read it in a book about homeschooling somewhere.
Imho, it's about learning how to follow a line of enquiry to a useful conclusion.
In terms of self-led teaching, this is useful because it places the responsibility of learning on the student (i.e. it equips the student with the skills necessarily to learn independently).
If we are able to question _why_ we're doing things a certain way, we can work out whether our reasoning is watertight .. or whether it needs to be revised (because it has 'leaks').
The truly beautiful thing about this style of educating, is that the path of inquiry is dictated by necessity - that is; there's not a teacher prescribing what to learn.. the student is learning the subject matter because it's relevant to the task at hand.
I think this helps to reinforce what's being learnt, and also helps to create passionate learners.
While that's probably all true about what we call the "Socratic method", the actual method used by Socrates ends up a lot closer to that quote. If you read any of the authentic Socratic dialogues, that's where they all end up.
I still prefer using Socratic Method, because of how deeply and thoroughly a student understands the matter once the inquiry is over with.
But yes, unfortunately, it drives people nuts, unless they have a penchant for this sort of thing.
Even if it drives them nuts, it works, albeit the student tends to lose focus if s/he gets upset or frustrated and so the whole thing can take a long time.
The "Socratic method" as a teaching tool is one thing, and I actually rather like it.
The actual method Socrates uses in the Socratic dialogues is something similar, but less constructive. Basically he asks someone the meaning of "justice" or something, and then uses questions to demonstrate all the flaws in the proffered meaning of "justice". At the end, all you're left with is not a better meaning of "justice", but just the sense that what you had to begin with doesn't work.
While I have heard that called "the Socratic method" it actually isn't; I agree that is an excellent form of tutoring, but it is better thought of as a type of "hinting" with leading questions being a kind of hint.
But it can be time consuming. Back in college, a friend asked for some help with his homework in implementing a linked list. I did the whole Socratic method on him, and it took (from what I recall) about four hours for him to have his "aha" moment.
Sometimes it's just easier to say, "Oh, you want to support local variables in your compiler? Easy, just implement your symbol table this way and support for local variables will just fall out as a side effect."