Heat butter/margarine in a large saucepan over medium heat.
Add onions and stir to coat with butter/margarine. Cook for 30 minutes, stirring every few minutes to avoid sticking. The onions should slowly brown, without getting burnt.
After 30 minutes. stir in the garlic and salt and cook for another minute. Using a wooden spoon, scrape up any pieces sticking to the pan.
Slowly stir in the wine to deglaze the pan. Stir in the flour, followed by the broth, Worcestershire sauce, thyme and bay leaf.
Bring the soup to a boil, then reduce heat to low-medium and simmer for 10 minutes, covered. Meanwhile, preheat oven to 400F.
Remove the sprigs of thyme and bay leaf using a spoon. Spoon the soup in oven-safe bowls. Top with a slice of french bread and a sprinkle of cheese (approximately 1/4 cup on each).
Bake for 6 minutes, then broil until golden and bubbly, being careful it doesn't burn. Serve immediately.