4 tablespoons unsalted butter
3 large white onions (about 2 1/2 pounds), thinly sliced
1/2 cup plus 2 tablespoons madeira
4 cups chicken stock or canned low-sodium broth
4 cups beef stock or canned low-sodium broth
2 tablespoons balsamic vinegar
Six thick slices stale sourdough bread
2 cups grated gruyere cheese (about 6 1/2 ounces)
2 scallions, chopped
Melt the butter in a large saucepan. Add the onions and cook over moderately high heat, stirring frequently, until softened and starting to brown, about 15 minutes. Add 2 tablespoons of the Madeira, reduce the heat to moderate and cook until evaporated. Continue adding a total of 1/2 cup of the Madeira, 2 tablespoons at a time, stirring often and cooking until evaporated before adding more, about 15 minutes. Continue cooking the onions, stirring, until deep brown, about 10 minutes more.
Add the chicken and beef stocks to the saucepan and bring to a rolling boil. Reduce the heat to low and simmer until the soup is flavorful and the onions are tender, about 1 hour. Season with salt and pepper and stir in the balsamic vinegar and remaining 2 tablespoons of Madeira.
Preheat the broiler. Arrange 6 ovenproof bowls on a baking sheet. Divide the soup among the bowls, top each with a bread slice and cover the bread with the cheese. Broil for 1 to 2 minutes, until the cheese is golden and bubbling. Garnish the soup with the scallions and serve.
The onion soup recipe can be prepared through Step 2 and refrigerated for up to 2 days.
Active Time: 45 Minutes
Total Time: 1 Hour 45 Minutes
Yield: 6 Servings