In a large pot, melt the butter over medium high heat. Add the onions (I used a mandolin to get them nice and thin) to the pot and cook for about an hour - stirring every few minutes.
Once the onions are browned (not burnt), add in the garlic. Cook for 1 minute. Next, add in the flour. Cook for 1 minute.
Add in the wine and, using a wooden utensil, scrape the browned bits off the bottom of the pot. There's a lot of flavor in those bits!
Add the beef stock, Worcestershire sauce, bay leaf, and thyme to the pot. bring it to a simmer, then cover and reduce the heat to medium low and simmer for 10-15 minutes. Season to taste with salt and pepper. Remove the bay leaf and thyme sprigs.
While the soup is simmering, slice the baguette into 1/2 inch slices and toast in a 400 degree oven for about 6 minutes, or until the edges are golden brown.
Turn the broiler portion of your oven on. On a baking sheet, place your oven safe serving bowls. Fill each bowl with soup. Top the soup with a bread slice and then your cheese of choice on top. I used 1 slice of Mozzarella, but if you use grated cheese, it will be about 1/4 cup.
Place in the oven under the broiler for 2-3 minutes. Cheese should be hot and bubbly. Serve immediately.