I have actually found that in terms of losing men attacking stone walls is preferable to attacking "cheap" wooden walls, primarily because of one reason- the towers can be captured. I generally build 2 siege towers and at least 4 ladders. First deploy most of your units in the front and then take two relatively weak and expendable units (but with moderately good defense, something like levy hoplites of the non-phalanx variety work pretty well here) and put them on ladders. Then look for two blind spots on the walls to the far right and left of your main force and have the two aforementioned units scale them. As soon as they reach the top have them start capturing the towers around the entire city, since almost all of your troops are concentrating one one side the defenders on top of the walls will only be on the same side that your army is on, meaning you can capture every single tower except for the 4 or 5 that are either right next to the enemy troops or close enough to them that capturing them would provoke an attack before we are ready, from now on any enemy that gets close to our brand new towers will quickly be cut down by our arrows, and the AI for some reason will never attempt to recapture them!

The next step is to move all but two of your assault units (high defense, high attack, preferably armed with swords and units you don't care about too much as these are the only units they will take significant casualties) in between towers that have already been captured and make sure they are approximately split in half and arranged on either side of the enemies still holding the front walls. The two units that are being held back should be attached to your siege towers. When every single one of the other soldiers are all on top of the walls have them charge the enemy, after a few minutes when everyone is busy fighting deploy your siege towers right in the middle of the melee so that the enemy is cut in half and being attacked from both sides. Relatively quickly they will be dead to the last man.

By now just about every enemy not in the city center will also be dead thanks to the captured towers. The only thing left is to charge the town square from all sides, and capture the town with an incredible kill-to-loss ratio. Though if you are playing with no time limit first you may want to take your missile units around the walls and try to find a sweet spot where you can pick off soldiers in the town center without worrying about counterattacks, predictable this will further reduce your losses.