In a large pot over medium heat, add a few tablespoons of olive oil. Add the chicken breast and cook until done, about 15 minutes (flip halfway!). If you prefer, you can use a pre-cooked rotisserie chicken for this instead, just skip cooking the meat! Another alternative is that you can boil a whole chicken in a pot of water for a few hours on the stove - this will give you chicken stock as well as the chicken meat! We use chicken breast because it's readily available and whole chickens can occasionally be expensive.
While the chicken is cooking, dice your onion, celery, and garlic.
Peel and dice the potatoes.
Remove the chicken when it is cooked through. Add in 2 tablespoons of butter, then add the onion, celery, and potatoes and cook for about 5 minutes until the onions begin to turn translucent.
Add in the garlic and cook for 30 seconds to one minute, until fragrant. If anything starts to stick to the bottom of the pot, add a little bit of water to release from the bottom.
Add in the dried thyme and the remaining 2 tablespoons of butter.
Once the butter has melted, add in the flour. Stir well until the flour has coated the vegetables.
Begin adding milk a little bit at a time, stirring well to make sure that the flour is hydrating and evenly mixing without clumps.
Once you've added the milk, begin adding the chicken stock. We like to add a full four cups of liquid but if you like your soup on the thicker side, you can begin with 2 cups of stock and adjust accordingly.
Let the mixture cook on medium heat until simmering (then you can turn the heat down and cover) for around 15 minutes, and until the potatoes are just beginning to get tender.
While the soup is cooking, clean, trim, and cut the asparagus into pieces about 1-1.5 inches in length.
Add the asparagus to the soup, cooking for an additional 5-10 minutes.
After adding the asparagus, you can either dice the chicken breast, or shred it. We like the texture of shredded chicken. If you're using a rotisserie chicken, remove all usable meat from the bones.
Add the chicken to the soup. Season with salt and pepper at this stage and taste for seasoning. Cook on medium heat for around 5 minutes until the chicken has heated through.
Add chopped parsley and half a cup of cream (optional) to finish.
We like to serve this soup with some toasted bread; enjoy!