Break off the bottom part of each asparagus stalk and discard it. Coarsely chop the rest of the stalks, leaving 12 or 16 of the flower ends whole. Put butter or oil in a large, deep skillet over medium-high heat. Add asparagus and tarragon, raise heat to high, and cook, stirring occasionally, until nicely browned, about 10 minutes. Remove the whole flower ends and set aside.
Add stock and some salt and pepper; bring to a boil, reduce heat and simmer until asparagus is very tender, about 10 minutes. Cool at least a few minutes.
Pour soup into a blender, in batches if necessary, and carefully purée. Return to pan, and, over medium-low heat, reheat gently. When soup is hot, adjust seasoning. Put 3 or 4 asparagus flower ends in each of 4 bowls; ladle in soup, and serve.