"This is a soup that beautifully disguises the amount of veggies. My kids adore it. This is also the only way they will happily eat salmon. It's so tender and blends in so well with the leeks and veggies that they are happy when this turns up every 2 weeks or so. Serve with crusty bread to sop up the remains."
Heat oil in a large pot over medium heat. Add leeks, onions, and shallots. Add garlic and salt. Cook and stir until all is well wilted and soft, but not browned, about 3 minutes.
Pour 4 cups of stock into the pot; add potatoes, cauliflower, and carrots. Bring to a boil, reduce heat to low, and cook until carrots and potatoes are soft, about 20 minutes. Insert a hand blender into the soup and blend until creamy-smooth. Add more broth if too thick; the soup should be the consistency of thick bisque.
Stir cream into the soup; cook until heated through but not boiling. Add salmon; cook and stir until it flakes apart, 5 to 6 minutes. Season with salt and pepper. Pour into bowls and sprinkle onions on top.