I've found axe dwarves with steel battleaxes to be quite effective. Sword dwarves are also very effective, but less so than axe. On the other hand, hammerdwarves seem far weaker with bronze hammers working better than steel hammers but still being crap compared to axes. Spears also seem kinda on the weak side. The axes just lop goblin parts off left and right. I haven't really tried crossbows much yet, but I guess I might set that up as soon as I get more time to play.
I just played around with crossbows in the arena, and they seem quite effective still. Steel bolts, steel crossbow, grandmaster skills and steel armor. Set against an opponent with the same grandmaster skills, battleaxe, and steel armor + shield. It took quite a few bolts, but they were dropping the battleaxe wielding dwarf every time before they got into range if I started at the max range. With 40 bolts they sometimes ran out of ammo before the dwarf died, but out of 20 tries they didn't once fail to at least injure the dwarf to the point that they could run in and finish them off by bashing with the crossbow.
-edit- whoops, I actually just realized I had forgotten to give the axe dwarves grandmaster dodging. After doing that the fight shifted into their favor, with them dodging a lot of the bolts. With that change, the axe dwarves managed to close in and beat the crossbow dwarves. 3 on 3 had one axe dwarf go down on approach (they focus fired on him) and the other two get in and whoop the poor crossbow dwarves. It's still useful, though - just put them behind a fortification or something.
I did some more arena tests (hehe, thats a fun mode) and found that crossbow dwarves do very well with axedwarves as cover. I sent in 6 axedwarves vs 3 axedwarves and 3 marksdwarves, and the team with the marksdwarves only lost one axedwarf. Apparently the marksdwarves were able to just fire away at the poor axedwarves on the other team while they were busy trying to fight, because they didnt dodge hardly any bolts and got pincushioned pretty badly. The team with crossbows used all their bolts (supplied 40 each) but beat the axe-only team pretty soundly. By the time all 120 bolts had been fired the 6 axe dwarves on the other team were so bad off that the axe dwarves on the crossbow team finished them off before the crossbow dwarves managed to get close enough to join the melee. The only damage taken by the axe dwarves on the crossbow team happened when the first clash of melee occured, losing 1 dwarf due to being outnumbered, but the bolts evened it up pretty quick and the two remaining were barely injured.