Melt 6 tbsp of the butter in a large pan. Set about 1/5 of the onions aside and add the rest to the pan. Stir to coat in butter, then cover and cook very gently for about 30 minutes. The onions should be soft and tender, but not brown.
Add the stock, about 1 tsp salt, and pepper to taste. Bring to the boil, reduce heat, and simmer for 5 minutes. Remove from heat.
Let soup cool, then blend until smooth. Return soup to the rinsed pan.
Meanwhile, melt remaining butter in another pan and cook remaining onions over low heat, covered, until soft but not browned. Uncover and continue to cook onions until they turn golden yellow.
Add cream to soup and reheat gently until hot, but do not boil. Add buttery onions and stir for 1-2 minutes. Serve immediately.