For carryout, I swear by Gaffney's Backfin in Highlandtown. Good prices and big, fresh-caught crabs. And very close to my house. Only bad thing is they give you all the crabs in paper bags rather than one of those nice cardboard boxes.
Crossroad's Pub in Dayton is a nice spot for dine-in crabs that people probably don't know about, it's not someplace you'd stumble across driving.
The last few times I've gotten crabs at a restaurant, it's been at Captain James' Dockside in Canton/Fells. They do all-you-can-eat Mon-Thur for $30 I think. Smallish crabs usually, but at that price, it's tough to complain too much. They say they limit you to two hours, but I've never had them enforce that.
I'm pretty hooked on steaming my own now, though. I get the large's from Maryland Crabs Delivered (on facebook), they drive a big truck to various spots around the beltway and you bring a cooler and ice. Typically about $200 for a bushel or $120 for a half for larges. Can get females or smaller males for cheaper.