Cut off asparagus tips and reserve. Discard tough ends (the last two inches); chop remaining stems into 2-inch segments.
In medium soup pot heat ghee or oil. Sauté onions, leeks, celery and asparagus stems (not tips) over medium heat for about 5 minutes.
Add arrowroot and stir until well blended. Stir continuously for about 1 minute more.
Transfer vegetables and flour mixture to a blender. Add about 1 cup stock (enough to help mixture blend easily). Blend well and transfer back to pot.
Add remaining stock to pot gradually, stirring out any lumps. Bring soup mixture to a boil then reduce heat and simmer until the soup is smooth and thickened, about 30 to 40 minutes. Stir frequently.
Add coconut milk, if desired, for a creamy consistency. Add salt and pepper to taste.
Add asparagus tips to soup and simmer 5 to 10 minutes.
Add tarragon for flavor.
Add meat or tofu if desired to make this a full meal!
Serve warm.