in cases like that i always use some cheap units with high numbers. eastern infantry or stuff like that. using siege ladders i climb the walls engaging the archers in hand-to-hand combat. once they are distracted i move in with the rest of my army. you of course suffer some casualties and have to actualy get your troops close to the walls. i found using quick paced light cavalry to distract enemy fire working quite good as well.