I'm finding it useful to keep low quality/small garrisons in cities. If you keep a large garrison, then the enemy won't attack until he has a large enough army to defeat the garrison. However, if you have a small garrison, you can send a roaming army to intercept the sieging army and either break the siege or kill it. The smaller the garrison, the more often the enemy will attack with small armies, and many smaller armies are easy prey as opposed to one to two big armies. Plus, you won't have to go through the painful procedure of sallying forth AND your army won't degrade (well, your attacking army) if you wait. If the roaming army gets attacked, then the spearmen can basically defend against anything if you put them in organized phalanxes at the corner of the map. Also, it is cheaper to have a few good roaming armies than smaller armies in every settlement (just keep 2 units of peasants, or more if public order decreases, and possibly a governor).

I had some money problems, but I just sold my maps to the Romans and managed to earn enough to survive on negative income until I took some settlements.