Melt the butter in a large pot. Add the onions and cook over a low heat for 40-50 minutes with the lid off. The onions should be dark and caramelised but should not be allowed to burn.
Add the stock, season with salt & freshly ground black pepper and cook for a further 10 minutes.
Serve in deep soup bowls and place a slice of toasted baguette in the centre of each bowl.
(Optional) Sprinkle the baguette slices with the cheese and pop under a medium hot grill until the cheese is golden brown.