Trim off tough ends of asparagus and cut into 1 inch pieces. Bring about 1 to 1&1/2 cups of broth to a simmer in a medium saucepan over medium heat. Add asparagus pieces and cook until just tender - they should still be fairly light green - about 5 minutes. (Tip - start with stem pieces for a minute or two before adding tips to keep from overcooking tips. Also, if asparagus is of varying diameters, start with thickest first, adding thinnest after a minute or two).
Remove about 1 cup of asparagus pieces and set aside. (Tip - start with the tip pieces as they make a nicer presentation at the end). Place remaining asparagus pieces with broth in a blender or food processor; blend until smooth.
Melt butter in a large saucepan. Whisk in flour until smooth; cook 1 minute while still whisking. Gradually whisk in remaining broth, cook until slightly thickened. Stir in asparagus puree, milk and cream, salt and pepper. Finally, add reserved asparaugs pieces and cook until heated through.