In a large saucepan, melt the butter over medium heat. Add the chopped onions and cook, stirring occasionally, until they become soft and translucent—about 5 minutes.
Add the diced potatoes, zucchini, basil, thyme, rosemary, and white pepper. Stir everything together and continue cooking for another 5 minutes, letting the zucchini soften slightly.
Pour in the chicken broth and bring the mixture to a gentle simmer. Let it cook for about 15 minutes, or until the potatoes are tender when pierced with a fork.
Using an immersion blender, puree the soup directly in the pot until smooth. If you don’t have an immersion blender, transfer the soup in batches to a countertop blender.
Stir in the milk and heat the soup gently, being careful not to let it boil. If you’d like the soup thicker, sprinkle in the optional potato flakes and stir well.
Season to taste with soy sauce, adjusting as needed. Garnish each serving with freshly chopped dill.