In a large stock pot add butter, olive oil and onions. Cover and cook on medium/low heat for 15 minutes stirring occasionally.
Uncover and raise heat to medium. Stir in salt, pepper, and sugar. Cook 30-40 minutes or until onions are golden brown. Stir often.
Stir in flour until onions are coated. Remove from heat and slowly stir in broth and vermouth.
Return the pot back to the burner and simmer partially covered for 40 minutes.
Meanwhile place the sliced french bread onto a baking sheet and place under the broiler for 5 minutes (or until just golden brown on the edges) flipping the slices halfway through.
When the soup is finished place a pinch of shredded mozzarella in the bottom of an oven proof bowl or crock. Ladle soup over the top. Place a piece of toasted french bread on top of the soup and then layer bread with a slice of gruyere, swiss or mozzarella cheese. Place the bowl under the broiler until the cheese on the bread starts to bubble.
Remove the bowl from the oven and allow to cool for a few minutes before serving.