If using fresh corn, cut the kernels off the cobs and measure out 4-½ cups. Save the bare cobs to use in the soup. If using frozen corn, set out 4-½ cups to thaw.
Dice bacon and add it to a large pot over medium-high heat. Cook, stirring occasionally, until the bacon is golden and the fat is rendered. Use a slotted spoon to transfer the bacon to a paper-towel-lined plate, leaving all the bacon fat in the pot.
Lower heat to medium and add butter, diced onion, diced carrot, and garlic to the pot. Season with salt and pepper. Cook for 5-7 minutes, stirring occasionally, until the onion is golden.
Sprinkle the flour over the vegetables and cook, stirring constantly, for 1 minute. Add the potatoes, Italian seasoning, and thyme, and cook for 30 seconds more, stirring constantly.
Slowly pour in the chicken broth, scraping up any browned bits from the bottom of the pot. The mixture should slightly thicken. Stir in the milk and bay leaf. Add the reserved corn cobs (cut in half if needed) and press them into the liquid. Turn the heat to medium-high and bring the soup to a simmer. Once simmering, lower the heat to medium-low and cover the pot. Maintain a steady simmer (not a vigorous boil) and cook for 20-25 minutes, stirring occasionally, until the chowder thickens and the potatoes are tender.
Remove the lid, discard the corn cobs and bay leaf, and stir in the corn kernels. Cook for 5-7 minutes or until the corn is tender. Stir in the heavy cream and adjust seasonings to taste.
Stir in half of the cooked bacon and a handful of finely diced fresh herbs if desired. Ladle the chowder into bowls and top with the remaining bacon. Garnish with more fresh herbs and serve with warm, crusty bread.
