Heat the olive oil in a large pot over medium heat. Add the diced onion, leek, and garlic. Cook for about 5 minutes until they soften, stirring gently.
Add diced celery, celeriac, and potato. Cook for 5-10 minutes. Pour in vegetable broth and add a bay leaf. Bring the mixture to a boil, then lower the heat and let it simmer uncovered for 25 minutes.
Remove the bay leaf. Use an immersion blender to blend the soup until it is smooth. Stir in the heavy cream if using and adjust the seasoning.