Melt the butter in a Dutch oven over medium heat. Add the leeks, onions, scallion whites, 1 1/2 teaspoons salt and a couple turns of pepper. Cover and cook, stirring every 4 or 5 minutes, until the onion is very soft, about 15 minutes. Uncover, increase the heat to medium-high, and cook, adjusting the heat as necessary and stirring often, until golden brown, 35 to 40 minutes more. (Loosen and scrape up any browned onion with a splash of water as necessary.)
Stir in the farro and wine and bring to a boil, scraping up any brown bits on the bottom of the pan. Add the chicken broth, beef broth, Worcestershire, bay leaves and 2 cups water and bring to a boil. Reduce the heat and simmer until the farro is tender, about 15 minutes. Discard the bay leaves.
Preheat the broiler to high with a rack set 4 inches from the heat source.
Divide the soup among flame-proof serving bowls and sprinkle evenly with the Gruyere. Broil until the cheese is melted, 3 to 4 minutes. Sprinkle with the scallion greens and serve.