Preheat oven to 400 degrees. In a large bowl, toss cauliflower with 1 T. olive oil. Spread on a baking sheet, and season lightly with salt and pepper. Roast cauliflower in oven for 30 minutes, or until edges are lightly browned, using a spatula to flip florets halfway through cooking. Let cauliflower cool while you proceed with remaining steps.

In a soup pot (3 qt. or larger), heat remaining 2 T. olive oil over medium heat. Add onion and leeks and sauté until translucent and soft, about 5-6 minutes. Add garlic (if using) and cook another minute more. Stir in asparagus and roasted cauliflower, and cook 2 minutes before adding soaked cashews and broth/water. Raise heat to high, bring pot to a boil, then reduce heat to a simmer and cook for 20-30 minutes, until both asparagus and cauliflower are very tender.

Turn heat off, then add parsley and watercress. Stir until leaves wilt slightly, then use an immersion (stick) blender to puree soup (alternatively, carefully puree soup in batches in a conventional blender and return to pot). Turn heat to low and stir in salt. Cook another 5-10 minutes and then serve.

Notes:

To maintain fresh green color, prepare soup just prior to serving. The longer it sits on the stove, the more color will fade.

Optionally, reserve and blanche a few asparagus tips in boiling water to use as garnish.

Variation: In place of cauliflower and cashews, use 1.5 lbs peeled and chopped potatoes.