I've used Garlikov's Socratic approach to rave reviews:

http://www.garlikov.com/Soc_Meth.html