We were married here so I did some research a while back.
First let me recommend a visit to the Maritime Museum and a boat ride while you are there, St. Michaels is "a drinking town with a sailing problem," ha ha and is best experienced by boat! Cute architecture, ice cream shop, good dining, biking, and messing about in boats. Also swing through Tilghman Island and Oxford if you get the chance. The very best place to eat is Mason's, in Easton.
The Inn at Perry Cabin is a perennial favorite. Also can recommend the Five Gables, which is up-to-date and has a spa, and the Harbour Inn is nice because it has a restaurant, pool and the marina on the waterfront. The Red Brick and the Parsonage are very central. Harbortowne is a large waterfront resort that would be good for golfing , tennis and swimming but is not right in town. Skip the Best Western, it is fine but not right in town and zero charm compared to what you can get.
I would take a little time to research reviews of bed and breakfasts, there are a ton in town and also going down the "neck" towards Tilghman Island. Tilghman Island Inn also a great choice although it is not in St. Michaels proper, it is run by very urbane owners and has a good restaurant.