I'm going to start the discussion with religion and spirituality, not because it's the primary reason we homeschool (it isn't) but because it's the reason many (most?) people assume families homeschool their children.
There are a lot of religious reasons to homeschool your children, but the most compelling one for me is that I believe that all education is inherently religious/spiritual. Meaning: Apart from very few subjects (typing perhaps?) you always rely on presuppositions, and those presuppositions are usually tied in some way to one's metaphysics and beliefs about spiritual reality. The idea of delivering some kind of "neutral" secular education is laughable. When you approach subjects like history, language, and science presupposing that the material universe is all there is, you will teach those subjects quite differently than if you presuppose that there is a spiritual realm.
In many subjects, public education is hamstrung by the anti-establishment clause on the one hand, and the inherently religious nature of education on the other. As children grow and their education develops, the material constantly calls out for value judgments. History, for example, is unintelligible if you refuse to acknowledge the religious and political motivations of its actors. How does one teach children about the crusades, the Roman Empire, the Enlightenment, or the wars of the 20th century without expressing SOME kind of moral judgment? Forget ONE, how do you enforce a set of standards for neutrality among THOUSANDS of teachers, knowing that they all come from different backgrounds and carry different spiritual biases?
Some other religious/spiritual reasons we, or other homeschoolers, might choose to keep our children out of the school system:
Also note that spiritual concerns go both ways. If you're an atheist in a district that has decided to teach Intelligent Design in its science curriculum, you might decide to keep your child home. Likewise other faiths.