Melt butter in a large pot over medium heat.
Add sliced onions and cook, stirring occasionally, for 20-25 minutes until deeply caramelized.
Add wine and scrape up any browned bits from the bottom of the pot.
Add beef broth, bay leaf, and thyme. Bring to a boil.
Reduce heat and simmer for 15-20 minutes.
Season with salt and pepper to taste.
Preheat broiler. Ladle soup into oven-safe bowls.
Top each bowl with a slice of bread and a handful of cheese.
Place under broiler for 2-3 minutes until cheese is melted and bubbly.
Serve immediately.