I can't remember the last time I actually assaulted a city i was besieging. The entire process reduces me to a broken man every time. It takes SOOO long to get even a few troops inside the city, and negotiating the city streets is a pain in the arse. Much easier to wait for the army to starve or, even better, for them to send a full stack to break the siege. You can sit on the defensive, decimate both armies (hopefully), and take the city.