Rome would be on my 'must do' list for Italy - haven't been for 20 years though because there's always somewhere else to see. But now I want to go back.
Florence was amazing - the view back over the city by sunset from the 'other' side of the river is just breathtaking. And the Duomo at night...
Tuscany is also beautiful - Siena, Lucca, Chianti and all the stunning towns in that area - stay on an Agroturismo if you can, and do a cooking course.
I love the mountains too - I've skied in northern Italy several times, and would love to go back in Spring/Summer - amazing scenery.
The Amalfi coast is beautiful, but I wouldn't stay in Sorrento - too touristy for me. But it's a useful base for Pompeii, which would also be on my 'must do' list.
If you're over towards Venice, Verona is worth a quick look while you're there.
Of the Lakes, I'd go to Como rather than Garda - I've only done the latter, but from chatting to other people, Como seems like the more scenic (although Garda was very scenic!)
If you've got 3 weeks, I wouldn't try and do Sicily too - it's huge. We had 2 weeks there, and only covered the south/eastern side - you could easily spend well over 3 weeks there! (Taormina is the one place I'd avoid, in contrast to the above poster - a big tourist trap in my view).
Good luck with your planning - it's such a lovely country, you'll have an amazing time.