They are both quaint little river communities. We live equidistant to both and frequent Geneva often, but St. Charles (downtown) very little. My perception is that St. Charles is much more middle class and Geneva is upper middle class. The downtowns seem to reflect this, though in the outskirts of both towns (which basically merge), I am not sure you will find too much difference.
I have heard good things about both school districts, but impressions of Geneva's schools have been higher. Geneva has also has a good park district. Geneva is on the train line down to the city and St. Charles is not.
When seaching for a house 5 years ago, we could not have afforded Geneva. We could have afforded St. Charles, but it was still a bit high for us, but the main factor was distance to my DH's work. They are both pretty far west so you might want to consider that. The roads in to both towns, Route 64 to St. Charles and Route 38 into Geneva get quite clogged up during evening rush hour.
I think you would be happy in either suburb, though if I had to pick, I would choose Geneva without question, particularly in terms of being family friendly - not that St. Charles isn't, but I just think Geneva has a lot more to offer.