Trim off and discard the stem ends of the Brussels sprouts. Chop the sprouts and set them aside.
Trim and chop the celery; peel and chop the shallot or leek.
Heat the butter in a small pot over medium-high heat. Once it melts, add the celery and shallot. Sprinkle with the salt and cook, stirring frequently, until the vegetables are soft, about 3 minutes.
Add the Brussels sprouts and stir to combine. Cook, stirring occasionally, until the Brussels sprouts turn a brighter shade of green, about 2 minutes.
Add the broth and bring everything to a boil. Reduce heat to maintain a steady simmer, cover partially, and cook until the Brussels sprouts are tender, about 10 minutes.
Use a hand-held immersion blender to completely purée the soup. You can also do this in a blender, just be sure to let the soup cool a bit first, work in batches, Be sure to purée the soup a bit longer than you may think is necessary; you want the final product to be as smooth as possible.
Stir in the cream, if you like.