Currently, in 1.09n, food seems to be the huge limiting factor in building cities. I'm finding myself having to hold off on settlement upgrades, so I can build that next city I'm thinking about, and several Cities have ended up holding off on leveling up because I don't have the food to spare for more huts/houses to house the necessary population, at least until I research the next available food boosting tech or wait around for that granary/irrigation structure to finish being built.
So the key here is to not make food resources so random that your game may end up being over before it ever began, but not so plentiful that you can level up cities at will, and build as many as you want.
That being said, I NEVER have a problem with City Spam. Managing 15-20 cities makes the game more interesting. The key is to make interfacing with said cities as seamless and as easy/fast as possible. Currently, I have to keep pulling up the city list window or scroll around the map looking for cities needing things to do, and open ANOTHER window to double check what the city already has. If these interfaces could be combined (thus having less steps to go through), that'd make things easier.
And if the city tab button at the bottom took you to any city with either the build or training cue open (instead of having to be completely idle), this would speed things up dramatically, just by doing this one simple change.
And if the city list window stayed open until you manually closed it (rather than automatically closing like it does now), that would also save time (by not having to re-open the interface each time).