Heat a bit of oil in your dutch oven over medium-high heat.
Add the onion, carrot, and celery, and saute until the onion is translucent and starting to brown.
Add in the garlic and herbs and cook until aromatic, about two or three minutes.
Add in the broth, ham, and potatoes. Deglaze the pot if necessary, and bring to a boil. Then, reduce to a simmer.
While the soup is simmering, in a sauce pan, make your roux. Melt the butter over medium-low, then add in the flour and whisk it until it makes a thickened paste.
Slowly add in the milk, about a quarter of it at a time, and whisk constantly until it thickens. The more you add at a time, the longer it will take.
When all the milk is added, add the cheese and mix it until it's a melty cheese sauce.
Once the soup has simmered until the potatoes and carrots are tender, add in the cheese sauce and mix. Bring it back up to temperature, season with salt and pepper to taste, and enjoy!