In a large soup pot or Dutch oven over medium heat, melt butter and saute onion until softened and just beginning to brown, about 5 to 7 minutes.
Add flour and Italian seasoning and whisk into the butter for about a minute. This forms a roux, which will be the thickener for the soup.
Add asparagus and stock, and season with salt and pepper. Bring to a boil, cover, and then reduce heat to medium low and simmer about 15 minutes, stir occasionally.
Add the heavy cream and blend. Transfer to a blender (in batches) or puree with a hand-held immersion blender until very smooth. Really let it blend awhile, the smoother the better. If using a blender, make sure the steam can escape by removing the center piece in the lid, but hold a clean kitchen towel over the hole while blending. Be careful when blending hot liquid!
Add puree back to the pot, and simmer a few more minutes. Taste and add another pinch of salt if needed.
To make Garlic Croutons, preheat oven to 400°. Cut French bread or a baguette into cubes and set on a sheet pan. Drizzle with a little olive oil and a pinch of garlic powder, salt and pepper and toss together. Bake about 5 to 10 minutes, shake and flip half way through. Croutons can be made anytime or while the soup is first simmering.
Garnish with Parmesan cheese shavings (use a vegetable peeler) and Garlic Croutons, or serve with sandwiches or crusty bread. Enjoy!