classic French onion soup with homemade beef stock and lots of gruyere cheese
Bring a large pot of water to a boil. Add the beef bones and blanch for 3 minutes. Drain the water and reserve the bones. Wipe out the pot and pour in 4 quarts of water. Add the beef bones. Bring the liquid to a gentle simmer. Simmer for 5 hours, making sure it does not come to a boil. After 5 hours, add the onions, carrots, celery, garlic cloves, parsley, and black peppercorns. Simmer for 1 more hour. Strain the stock and reserve for the soup.
Meanwhile, heat a large, heavy-bottom pot (I use my Le Creuset) over medium heat. Add the butter and let melt. Add all of the onions and stir to coat. Season with salt. Let the onions sauté for about 10 minutes, stirring often. Lower the heat to medium-low and continue to cook the onions until they are brown and caramelized, about 45 minutes to an hour. Deglaze the pan with the sherry wine. Stir well and let simmer for a minute or so. Add the beef stock, fresh thyme, and bay leaves. Let the soup come to a simmer and cook for 30 minutes. Meanwhile, preheat the oven to broil on high. Season the soup to taste (you need a generous amount of salt to bring out all of the flavors). Remove the bay leaves.
Ladle the soup into oven-safe bowls. Place 2 slices of bread on top of each bowl of soup. Mound the gruyere cheese on top of the bread. Place the soup bowls onto a sheet pan and place in the oven. Let the cheese melt and brown, about 1 minute. Garnish the soups with fresh thyme leaves. Serve immediately.