Melt butter in a large stockpot or Dutch oven over medium heat. Add onions, and cook, stirring often, until deep golden brown and caramelized, about 20-30 minutes. Stir in garlic until fragrant, about 1 minute. Stir in water, scraping any browned bits from the bottom of the stockpot. Stir in beef stock, thyme and bay leaves. Bring to a boil; reduce heat and simmer, stirring occasionally, until slightly reduced, about 15-20 minutes. Remove and discard thyme sprigs and bay leaves. Stir in white wine vinegar; season with salt and pepper, to taste.
Heat oven to broil. Place baguette slices onto a baking sheet. Place into oven and broil until golden brown on both sides, about 1-2 minutes per side; set aside. Divide soup into ramekins or ovenproof bowls. Place onto a baking sheet. Top with baguette slices to cover the surface of the soup completely; sprinkle with cheeses. Place into oven and broil until golden brown and cheeses have melted; about 2 minutes. Serve immediately. Serves 6.
Approximate Nutrient Analysis per serving (not including salt to taste):
520 calories, 2 g fat, 12 g saturated fat, 55 mg cholesterol, 1400 mg sodium, 63 g carbohydrate, 4 g fiber, 11 g sugar, 26 g protein