I think one of the weakest aspects of my teaching is running tutorials. In Australia, for most upper level undergraduate courses there is a weekly one hour tutorial [problem solving session] that is run by the lecturer.
Mostly I have run these tutorials according to a traditional format. There are a set of problems that the students are meant to attempt before the session. At the tutorial I then work through the solutions on the board. There are many problems with this approach. Students often don't attempt the problems beforehand because they are not assessed. It is just like a lecture. Students are hesitant to ask questions and just write down what you write on the board. It is somewhat boring. I am not sure the students get much out of it.
Previously, I posted about a different approach that my colleague Joel Corney introduced for a large second year class we were co-teaching. I thought this was quite effective. But, it also required TA's (grad. student tutors) to help.
For PHYS4030 [a solid state physics class with 15 fourth year undergrads] I finally did something I have wanted to do for a long time. Each week I have assigned two students in the class to run the tutorial. They can opt out if they want. They are meant to attempt them beforehand. They then stand at the board and do what they can. Other students offer suggestions and ask questions. I only speak up when essential.
I think it is going well. The students seem more engaged. Furthermore, it is very helpful for me to see what they find difficult or are confused about; sometimes things that I think are basic and gloss over too quickly. On the other hand, I think you do need a critical mass of motivated and engaged students. Unfortunately, not every class has this.
I welcome other ideas.