Peel and cut the onions into slices to measure 4 cups. In a 4-quart nonstick Dutch oven, melt the butter over medium-high heat. Stir in onions to coat with butter. Cook uncovered 10 minutes, stirring every 3 to 4 minutes.
Reduce heat to medium-low. Cook uncovered 35 to 40 minutes longer, stirring well every 5 minutes, until onions are deep golden brown (onions will shrink during cooking).
Stir in broth, water, pepper, thyme and bay leaf. Heat to boiling over high heat. Once mixture is boiling, reduce heat just enough so mixture bubbles gently. Cover with lid; simmer 15 minutes. Meanwhile, shred the Gruyère cheese by rubbing it across the largest holes of a grater to measure 1 cup; set aside.
You may need to move the oven rack so it is near the broiler. Set the oven control to broil. On a cookie sheet, place the bread slices. Broil with tops about
5 inches from heat 1 to 2 minutes or until golden brown. Turn bread over; broil 1 to 2 minutes longer until golden brown. Place toasted bread in 4 ovenproof bowls or individual ceramic casseroles (do not use glass, which cannot withstand heat of broiler and may break).
Remove bay leaf from soup. Ladle soup into bowls. Top with Gruyère cheese. Sprinkle with Parmesan cheese. Place bowls in pan with shallow sides.
Broil soup bowls with tops about 5 inches from heat 1 to 2 minutes or just until cheese is melted and golden brown. Watch carefully so cheese does not burn. Serve with additional French bread if desired.