I have complained twice, with a heavy heart. I know that teaching is a tough job, and I think the majority of teachers work really hard, so I would never complain lightly, but sometimes it is necessary.
First time was when dd was at primary school. It wasn't really a complaint so much as feedback in relation to a trainee teacher who was clearly in need of more support with classroom management. DD was getting really upset about some very nasty things that this woman was saying to her friends - calling them stupid, telling them she didn't like them etc. The comments weren't actually directed at dd but she was really distressed because she knew it was wrong, so I fed back to her main class teacher. Support was put into place and the situation improved.
Second time was at secondary. One of the teachers was utterly useless, spent all lesson on Facebook or booking his holidays, didn't really teach the kids anything. Was very "funny" but completely disengaged from his actual job. Did random things like emptying people's pencil cases all over the floor to see how they would react, or chucking things at people, eating sweets all through the lesson. And told the that he would "put on his professional face" for their parents at parents' evening. DD thought he was hilarious at first, but became increasingly frustrated as she realised that any learning she was going to do in that subject was going to have to be completely self taught. I complained to the head teacher, and don't think he was the only one. He left shortly afterwards, not sure if he resigned or was sacked.
I do make a point of thanking the really good teachers and feeding back the positive stuff. Most teachers work really, really hard, so if there is someone who is just taking the piss, I think it's fair enough to complain. However, I would only do it with really good reason - at the end of the day, it's someone's career on the line.