Preheat the oven to 350°F. Cut the tops off the garlic bulbs to expose the cloves. Place each bulb cut side up on top of two layers of aluminum foil. Drizzle with a little of olive oil and then wrap the bulb in the foil. Place each wrapped bulb into the oven and roast for 1 hour. The garlic is done when the cloves are golden in colour and very soft. Let cool briefly before squeezing out the cloves.
In a large, heavy bottomed pot, heat 1 tablespoon olive oil and the butter over medium heat. Add the onion and leeks and sprinkle with a little kosher salt. Sauté for 3 to 4 minutes until the onions are golden and tender.
Add the vegetable broth and 1 teaspoon of kosher salt along with the diced potatoes. Bring to a simmer and then reduce the heat to medium low. Simmer for about 15 minutes until the potatoes are tender. Add the roasted garlic and cook for another few minutes.
While the soup is simmering, prepare the cheesy croutons. Preheat the oven to 375°F. Spray a baking sheet with non-stick spray and set aside. Finely mince the garlic, or grate on a rasp. In a mixing bowl, combine the melted butter, olive oil, minced garlic, kosher salt and pepper. Stir together. Add the bread cubes to the garlic butter and toss to evenly coat. Add the shredded parmesan and Gruyère and toss together.
Spread the bread cubes out on the baking sheet being careful to keep as much of the cheese on top of the bread cubes as possible. Bake for 10 minutes and then flip the bread cubes with a metal spatula. Bake for another 5 to 7 minutes until the bread is browned.
To purée the soup, carefully transfer about half the soup to a blender. Cover and blend until smooth. Pour into a separate container. Repeat with the remaining soup. Rinse the soup pot and return the puréed soup to the pot. Place the soup back over medium heat. Stir in the heavy cream and parmesan cheese. Cook gently until the cheese is melted.
To serve, ladle the soup into individual bowls. Top with the cheesy croutons and some parsley for garnish. Enjoy!