Dice the onion. Warm the butter in a medium pot/pan over a medium heat then add the onion once melted. Cook for a couple minutes to soften so the onion becomes translucent.
Set aside around 1 chestnut per person for the topping, if adding (or you can use additional, if you have them) and break into pieces.
Add the rest of the chestnuts to the onion, stir to coat with the butter and then add the stock, bay leaf, salt and pepper.
Cover the pot, bring to a simmer. Reduce the heat to keep it at a simmer and cook for around 20 minutes to let the flavors mingle.
Meanwhile, warm the butter in a small skillet/frying pan over a medium heat and add the chestnut pieces. Cook, stirring now and then, to gently crisp and brown the chestnut pieces on each side.
Once the soup has cooked around 20 minutes, remove from the heat and blend until smooth (either use a stick/immersion blender or transfer to a blender). Add the cream and mix in so well mixed. If needed, thin out the soup with a little more stock if it seems too thick (though this is a reasonably thick soup). You can also adjust the seasoning a little to taste as well.
Serve the soup topped with some pieces of crisped chestnut. You can optionally use a little parsley or chives to garnish as well.