Looking at pictures of Stalingrad at the end of WW2 and modern cities in northern Africa and the middle East that are just rubble, why are they so important to control?
Your goal isn't necessarily to destroy the city, but control the city. If you can take the city without destroying it, the better. But you have to dislodge an enemy from the city who doesn't want to leave. However, if you're on the defensive, destroying a city may help slow or stop an offensive, by depriving the enemy of ease of access or movement, shelter or things they may use for their war effort. Also, cities offer a great place for ambush and defense. Most of all, as an attacker, cities are important because they are large population centers which helps with controlling the enemy populace, have large areas to create depots, hospitals, etc. and industrial/infrastructure buildings to help with the war effort (factories, rail roads, airports, etc.) and typically have access to clean water, electricity and communications.