Add 2 tbsp of butter to a large Dutch oven or soup pot over medium heat.
Cut the onions in half from root to tip. Trim off the each end of the onion and lay it flat on a cutting board. Starting on one side of the onion half, slice into small strips.
Add the onions to the pot and stir around so they are all coated in butter. Sprinkle with a little salt and pepper. Let them cook slowly for about an hour, stirring every so often and making sure the heat isn't too high. You want the onions to slowly soften and turn a nice light brown color without burning or sticking to the bottom of the pan.
Once the onions have softened and cooked for about an hour, add 1/4 cup of red wine to the pan. Turn the heat up slightly so the wine begins to slowly burn off.
When most of the wine has burned off, add the beef broth and bay leaves and simmer for about 30-45 minutes or until you are ready to serve.
While the soup is cooking, slice the French bread and lightly toast. Slice the Gruyere cheese into thin slices.
When ready to serve, ladle the soup into individual bowls (I love using ramekins for this because they are ovenproof).
Add a slice of bread to the top of the soup and 2 or 3 slices of cheese on top of the bread. Put all of the bowls on a cookie sheet and put in the oven on broil. Keep an eye on the cheese so it doesn't burn. Once the cheese is nice and melted, your soup is ready to eat!