In a large pot or dutch oven, melt the butter over medium heat.
Add the leeks and garlic, and sweat them until slightly translucent and fragrant, about 5 minutes. Add salt and freshly ground pepper to taste.
Mix in the beans, water, and chicken stock, bring to a boil and then lower the heat to a simmer. Cover with the lid and simmer until the beans are tender, about an hour and a half. (You could also soak the beans in the 4 cups of water the night before, which will reduce the cooking time by 30 minutes).
Stir in the parsnips, cauliflower, and celery root and cook covered until the vegetables are very tender, about 40-50 minutes.
Stir in the peas and cook for 2 minutes.
Remove from the heat. Stir in the herbs: parsley, dill, chives, and mint. Add the soup to a blender in two separate batches and puree until very smooth and velvety. Return to the pot and adjust for seasoning.
Stir in the creme fraiche and reserve some for serving.
To serve, add a dollop of creme fraiche to each bowl and a drizzle of extra virgin olive oil. Garnish with blanched spring peas, dill fronds, edible flowers, or croutons. Store any leftovers in an airtight container in the fridge for up to 5 days.