In Varenna our choice is a lakefront room in Albergo Milano. We always stay in the annex (Casa Rossa) in the top-floor room, which is large and bright, with a nice big terrace overlooking the lake. Lots of stairs to climb, though. If you would rather not, I am sure the rooms with balcony in the main hotel are very nice as well. Their restaurant (La Vista) is very good, and sitting outside on the terrace always a delight.
In Florence, we enjoyed our stay at Casa dei Tintori:
http://www.casadeitintori.it/en/
It is a small B and B close to the river, one bridge upriver from Ponte Vecchio. An easy walk to the Duomo on pedestrian streets (once we found the route). We were traveling with our two daughters, so stayed in the Green room and were very comfortable. This room can also be set up as a double with sitting area which would be nice. The regular double rooms (Indigo and Red rooms) might be less money if you preferred that.