This is an issue that came up with my host family quite often. I have never been quite clear on which to use. In particular, 子 seems somewhat rude (much to the same effect as 男 or 女). On the other hand, 子供 "seems" less rude, but I'm not entirely sure if that's the case. Finally, お子さん seems very polite (for obvious reasons), but it seems almost too polite--especially to refer to kids, with whom you would most likely use casual language.
What is the difference between 子, 子供, and お子さん?