1/2 cup unsalted butter
5 onions, sliced (we used a mixture of yellow and red)
2 garlic cloves, minced
2 bay leaves
2 fresh thyme sprigs
Kosher salt and freshly ground black pepper
1 cup red wine
3 tablespoons all-purpose flour
2 quarts beef broth (or less if you want it a little thicker)
1 baguette, sliced
1/2 pound grated Gruyere
In a large soup pot, melt the butter over medium heat. Add the onions, garlic, bay leaves, thyme, a teaspoon of salt, and some pepper and stir until combined.
Cook, stirring every few minutes, until the onions are very soft and caramelized, about 30-40 minutes.
Add the wine, reduce the heat, and simmer until the wine has evaporated and the onions are dry, about 5 minutes. Discard the bay leaves and thyme sprigs. Sprinkle in the flour, and stir. Turn the heat down to medium low so the flour doesn't burn, and cook for about 10 minutes to cook out the raw flour taste.
Now add the beef broth, bring the soup back to a simmer, and cook for 10 more minutes. Season, to taste, with salt and pepper.
When the soup is almost done, preheat the broiler. Ladle the soup into oven-save bowls, top each with 2 slices of bread and top with cheese.
We stacked the bread because the openings of the mugs were so small. Put the bowls into the oven to toast the bread and melt the cheese. Watch carefully so it doesn't burn!
If you don't have oven-safe bowls, you could arrange the baguette slices on a baking sheet in a single layer, sprinkle the slices with the Gruyere, and broil until bubbly and golden brown, 3 to 5 minutes.