Preheat the oven to 350°F. Grease a medium casserole dish (approximately 2 quarts, or about 11 x 7-inches or 9-inches square). Set aside.
Melt the butter in a large saucepan over low heat.
Add the onions and cover. Cook for about 30 minutes, stirring occasionally.
Add the beef broth and the Worcestershire sauce; bring to a boil.
Reduce the heat to low. Allow the liquid to simmer, uncovered, for about 30 minutes so that the broth reduces.
Pour the onion and broth mixture into the prepared baking dish.
Lightly toast the slices of bread.
Arrange the toasted bread in a single layer on top of onion and broth mixture.
Cover the bread with a thick layer of shredded mozzarella. Sprinkle grated Parmesan over top.
Bake, uncovered, for 20-30 minutes, or until cheese is melted and lightly browned on top. If you prefer a darker, crispier topping, you can place the dish under the broiler for the final 1-2 minutes (just keep a close eye on it so that it doesn't burn). Garnish with chopped fresh herbs, if desired.