My 2c on city building:
I agree with much of the OP and first posters said. City building is incredibly boring right now, and it need not be.
I think the key to fixing this are the following ideas:
1. Relating the city to the terrain
At the moment, cities are too generic, and the initial placement seems to matter very little. The key factor is closeness to the 'special' resources, iron, horses, shards, etc, but it seems to matter quite little whether you are close to rivers, mountains, forest, hills, etc.
More buildings like the watermill, etc are probably the key here. But buildings should relate specifically to where they are on the map. For example, the lumber mill could provide +3 Production per wood square that it is next to. This means that it could provide up to +21 if surrounded on 7 sides by forests. This makes the actual POSITION relative to terrain quite an important decision, and the decision about where to build in the first place a bit more interesting. Combined with a range of buildings that have such interactions possible (fishing village near water tiles, water mill near river, blacksmith within x tiles of iron mine or hills, Windmill on a hill, garden near x clear plains tiles, bakery next to the granary bonus, etc.
These kind of bonuses would link the placement of a city to a much more complex set of decisions about terrain, and make the decisions about where to build things a lot more interesting.
Combine with idea #2...
2. Having slots, or some internal structure of the city that matters in the game
It has been suggested in the thread that having a limited number of slots might be better, since it forces CHOICE. Indeed, there is something in that. However, to turn this into a 'soft limit', the other way of handling it is to have some privileged positions, and then adding costs to add more buildings. For example, imagine that you have a central 'town' square, and that each of the 4 cardinal directions building spots are 'free' to build on, but that after that, the cost of building went up by an amount (say, 1 Gildar per turn) per squares distant from the center. This simulates the need for people to communicate (talk and travel) in a town, and will tend to drive roughly square / circular shapes. You can still do a long snaky town if you want, but it will cost more, and would only be done for a good reason. It also means that you will have increasingly hard choices about which buildings to build close to the town center, and whether to build more after a point, since the costs will escalate.
If you combine #1 and #2, you get some quite difficult choices to make, and it will require some real thinking to decide how to develop a town / towns.
The other idea suggested here that I like is the one to link the production of heroes to the buildings in a city.