Melt 2 tablespoons butter in a large stockpot over medium heat.
Add in celery, carrots, onion, garlic, salt, and pepper.
Cook, stirring often, until the celery and carrots are tender, about 10 minutes.
Reduce heat to low.
In a small bowl, whisk together 2 tablespoons melted butter, flour, and 1/4 cup chicken broth.
Slowly whisk mixture into the stockpot and cook, stirring constantly, for 2 minutes.
Slowly whisk in the remaining 2 3/4 cups chicken broth.
Pour in half and half, potatoes, and ham.
Increase heat back to medium, bring to a simmer, stirring occasionally.
Cover and simmer (you'll probably need to lower the heat back to low) until the potatoes are cooked, about 15 minutes, stirring occasionally.
Remove from heat, and slowly stir in sour cream, cheddar, and swiss until the cheese has fully melted.
Taste and re-season, if necessary and serve with more sour cream, green onions, etc.
Take 5 seconds to . We greatly appreciate it!