Create a roux. Melt butter in a small saucepan over low heat. Once melted, add the flour and mix. Cook for 2 minutes and then remove from the heat to cool.
Combine the milk, corn, shallot, leek, thyme, and a pinch of salt and pepper in a large saucepan. Bring to a simmer over medium-low heat, ensuring it doesn’t boil. Remove from the heat and strain half of the milk into the cooled roux. Whisk until the roux is smooth, and then gradually whisk it back into the soup.
Bring the soup to a light boil over medium heat, whisking constantly. Cook for 2 minutes, then remove from the heat.
Using an immersion blender or in batches in a regular blender, puree the soup until very smooth. This will take several minutes. Pour the soup through a coarse strainer, a fine-mesh strainer with a ladle, or through a food mill.
Transfer the soup back into the soup pot and add the cream, adjusting the amount to create your desired consistency. Taste and season with salt and pepper. Serve in soup bowls and garnish with fresh chives