Heat the oil in a large pot over medium heat. Add the carrots, celery and onions and cook until the onions are soft and translucent, 3 to 5 minutes. Add the thyme and garlic and cook until fragrant, 45 to 60 seconds. Season with salt and pepper. Sprinkle the flour over and cook, stirring, for 2 minutes. Gradually whisk in the stock, and then the milk. Add the potatoes and bring the soup to a boil over high heat. Decrease the heat to low and simmer until the potatoes are tender, about 20 minutes.
Using an immersion blender, puree the soup; leave it coarse and chunky if you prefer a more rustic soup, or puree until smooth for a more elegant soup. Add the cheese, about 1/3 cup at a time, stirring after each addition until melted and smooth. Taste and adjust for seasoning with salt and pepper.
To serve, ladle the soup into warmed bowls. Sprinkle with chives and serve immediately.