In a saucepan over a medium heat, melt the butter and add the onion, garlic and celery. Cook and stir for a few minutes until soft. Add the remainder of the ingredients, except the cream and allow to simmer gently for 40 minutes.
Purée the soup using a handheld liquidiser then add the cream and mix well. Serve hot in warmed bowls.