Gather all your ingredients. Chop the cauliflower into small florets, peel and chop the potato into cubes, chop the onion into small pieces, and shred the sorrel leaves.
Place the cauliflower florets, chopped potato, and onion into a large saucepan. Add the butter and olive oil. Turn on the stove to medium-low heat and gently heat the ingredients. When you hear a gentle sizzle, cover the saucepan with a lid and allow the vegetables to sweat for about 10 minutes. Stir occasionally to prevent browning.
Remove the lid and pour in the chicken stock. Increase the heat to bring it to a boil. Once boiling, gently pour in the whole milk, stirring constantly, and return to a gentle boil. Season with sea salt and freshly ground black pepper to taste.
Lower the heat to simmer the soup uncovered for about 10-15 minutes until the vegetables are tender. Check tenderness with a fork.
Add half of the heavy cream to the saucepan. Use an immersion blender to puree the soup directly in the saucepan, or transfer to a blender or food processor to puree until smooth. If using a blender, do this in batches and be careful with hot soup.
Pass the pureed soup through a fine mesh sieve back into a clean pot, using the back of a ladle to help push it through. Discard any solids left in the sieve. Add the remaining cream to the soup, taste for seasoning, and adjust with more salt and pepper if needed. Bring it to a gentle boil before serving.
Ladle the hot soup into individual soup bowls. Garnish each serving with a few shredded sorrel leaves. Optionally, add a teaspoon of caviar to the center of each soup dish for a luxurious finish.
