Heat a large stock pot or Dutch oven over medium-high heat. Add the bacon and cook, stirring often, until it is crisp. Remove the bacon to a paper towel to drain any excess fat (but leave the rendered fat in the pan).
Add the chopped onion and cook, stirring occasionally, for 5-7 minutes or until it is soft and translucent.
Next, add the garlic and thyme. Stir and cook for 1 minute, or until the garlic is fragrant.
Next add the cornstarch and stir so it evenly coats the onion.
Add the chopped potatoes and 3 cups of chicken stock. Raise the heat to high and bring the mixture to a boil. Cook until the potatoes are fork tender, about 10 minutes.
Transfer the soup to a blender or use an immersion blender to puree the soup until it is smooth.
Add the remaining two cups of chicken stock, along with the corn, and bay leaf.
Cook for an additional 10 minutes, or until the corn kernels are tender.
Remove the bay leaf and stir in the heavy cream and butter. Season with salt and pepper to taste.
Serve topped with the crisp bacon and green onion or cheese, if desired. Store any leftover soup in an airtight container in the fridge for up to three days.