This is such a great question and something I am constantly evaluating as the Mom of two boys.
My 1st grader was being picked on by a kid at school who had a history of bothering other children. My son was doing the right thing by telling the teacher, and telling me, but it wasn't getting the child to stop. I thought about going to the school, meeting with the teachers, and talking to the other boys' guardians (he didn't live with his parents), but something told me that my son might need to address this in a different way himself. I told my son to talk the child directly, and look him in the eyes so he would know my son was serious. I told him to tell the boy that he *had to* stop hitting him, tripping him, and "accidentally" doing other stuff to him because it was not right, and it was not o.k. I also told my son to pray for the other child, and to ask God to show him the right time to talk to the other boy and give the right words to say. I also explained to my son that sometimes people will keep picking at you if you don't deal with them directly; he had to stand up to this other child.
I also wrestled with whether I should tell him to defend himself. But I agree with Diane B., that self-defense is hard to teach at this young age. However, I will be enrolling both of my son's in some sort of marital arts so that they can defend themselves as they get older, which I think will become important. I liked B's "three-step" solution as well.
As with a lot of other parenting issues, I don't think there is one thing that will necessarily work in all situations at all times. My prayer is that I can help them figure out how to respond to each challenge in a God-honoring way.