St. Michaels Marina is very good, fuel, pump-out, 3 restaurants on site, although the pool is postage stamp size (good dock hands, though, so the higher cost can sometime be worth it). We more often stay at Higgins Yacht Yard (associated with the Two Swan Inn B&B), no frills, less expensive, even slightly closer to town. As Mike mentioned, the St. Michaels Harbour Inn and Marina is good, although also more expensive and a further walk. Or if you join the Chesapeake Bay Maritime Museum as a Contributing Member, you can sometimes dock there, but you can only reserve 2 weeks in advance. See ActiveCaptain for various detailed reviews.
-Chris