Skagway is a massive tourist trap, but it is the end of the line and like the elevator to the top of the Empire State Building, you need to see it once. This town gets nailed by the giant tour boats several times a day. Some of these boats drop off more people for a 2 hour visit than actually live in the town.
Haines is the quiet twin to Skagway, 15 minutes away by boat but something like 350 miles by car (those 350 miles are a great road trip). It is sort of spread out though, with a downtown you can see in an hour. Usually skipped by the big tour boats.
Juneau is of course the capital of Alaska and so has all the things a state capital will have, so there is a full day or two of local things to do. Plus, it is the start point to many day trips by small boat that you can hook up with wherer they dock near the big Library. Definitely take a day trip to the Tracy Arm. This town gets nailed by giant cruise ships that can put half of downtown in their shadow.
Sitka is probably wins the “cute” contest with a victorian + russian town center all nicely restored. Plus some museums, good restaurants and the great Raptor Recovery Center. This would be a good choice. Plus, usually skipped by the big tour boats.
Ketchikan is largest after Juneau and has a nice downtown, but it is touristy like Skagway. Also it is the southernmost Alaska town in this list and the landscape is rapidly turning from northern fjords to soemthing much more like Puget Sound.