Higgins Yacht Yard is least expensive, no frills, easy walk to town (we usually stay at Higgins).
If you belong to the Chesapeake Bay
Maritime Museum at Contributing Member
level or higher, you can dock
there at reasonable expense, but you can only reserve 2 weeks in advance... so may not get a slip (we have about 50% success rate).
St. Michaels Marina has great dock hands, three on-site restaurants, and a postage stamp size pool... and is more expensive (we'll stop there in early August).
St. Michaels Harbour Inn and Marina is also top-drawer (and expense) but is also further walk to town.
The Miles River Yacht Club is furthest from town, I've heard good if you qualify for reciprocal access.
Check ActiveCaptain for in-depth info on amenities and reviews