Melt the butter in a medium saucepan over medium-low heat. Add the grated shallot and celery and cook until tender, about 3–4 minutes, stirring occasionally.
Stir in the flour and cook for 1 minute, stirring constantly.
Gradually whisk in the milk until smooth, then gradually whisk in the stock. Stir in the salt, white pepper, and garlic powder.
Bring to a gentle simmer and cook for 2–3 minutes, stirring frequently, until thick and smooth. It will thicken further as it cools.
Use the full batch, undiluted, in place of one can of condensed cream soup.
Notes
Cream of Celery: Prepare the base recipe as written.
Cream of Mushroom: Add ½ cup finely diced mushrooms to the butter with the shallot and celery. Cook until tender and the mushroom moisture has mostly evaporated before adding the flour. Continue with the base recipe.
Cream of Chicken: Use chicken stock. Stir ½ cup finely diced or shredded cooked chicken into the finished base and gently heat through. Add a pinch of thyme or poultry seasoning, if desired.
Cream of Broccoli or Cauliflower: Steam ½ cup finely chopped broccoli or cauliflower until tender and drain well. Mash half, then stir all of it into the finished base and heat through.
Cheddar: Reduce the kosher salt to ½ teaspoon initially. Prepare the base, remove the saucepan from the heat, and gradually stir in ¾ cup freshly grated sharp cheddar until melted and smooth. Taste before adding any remaining salt. Avoid boiling after adding the cheese.
The variations add volume, but use the full batch as your one-can substitute. Salt levels vary by kosher salt brand and stock, so adjust to suit your ingredients.