Melt butter in a large, heavy saucepan over medium heat. Add onions and thyme and cook until the onions are soft and translucent, about 5 minutes.
2 Tbsps butter, 2 medium onions, 2 tsps chopped fresh thyme
Add the 20 fresh garlic cloves and roasted garlic. Cook for about 2 minutes, stirring occasionally.
20 garlic cloves
Add broth, cover, and simmer for about 20 minutes, until the garlic is very tender.
4 cups low-sodium chicken broth
If using the optional potato: While the soup simmers, place the diced potato in a separate saucepan and cover with salted water. Simmer until fork-tender, then drain and set aside.
1 large russet potato
Purée the soup until smooth with an immersion blender, or carefully purée in batches in a countertop blender.
Stir in the cream and heat gently over low heat. Do not boil. Season with salt and pepper to taste. If using the potato, stir the cooked pieces into the finished soup and heat through.
½ cup heavy cream, ½ tsp sea salt, ½ tsp freshly ground black pepper
Divide the Parmesan among four serving bowls, about 2 tablespoons per bowl. Ladle the hot soup over the Parmesan and squeeze one lemon wedge into each bowl.
½ cup finely grated Parmesan cheese, 4 lemon wedges
Serve with additional Parmesan, Parmesan crisps, toasted croutons, or sautéed garlic, if desired.
Toasted croutons, Sautéed, minced garlic, ½ cup Parmesan cheese for Parmesan Crisps