01 - In a large pot over medium heat, cook the diced bacon until crisp. Remove with a slotted spoon and set aside. Drain excess fat, leaving 1 tablespoon in the pot. For a vegetarian option, omit bacon and use an extra tablespoon of butter.
02 - Add butter to the pot. Sauté onion, celery, carrot, and garlic for 4 to 5 minutes until softened.
03 - Stir in potatoes, corn, bay leaf, thyme, smoked paprika, salt, and black pepper. Pour in broth and bring to a boil.
04 - Reduce heat, cover, and simmer for 15 to 20 minutes until potatoes are tender.
05 - Remove bay leaf. Using an immersion blender, puree about half of the soup in the pot to create a creamy texture, leaving some chunks. Alternatively, transfer half the soup to a blender and return it to the pot.
06 - Stir in whole milk and heavy cream. Simmer gently for 5 minutes and adjust seasoning as needed.
07 - Ladle soup into bowls and garnish with reserved bacon and chopped fresh chives or parsley.