Melt the margarine in a large saucepan over a medium heat. Add the onion, leek and celery and cook until the onion is soft, about 6 to 8 minutes. Sprinkle in the flour and cook over a gentle heat until it reaches a sandy texture. Gradually pour in the stock, stirring continuously to avoid any flour lumps. Simmer for 30 to 45 minutes until the vegetables are tender.
Blend the soup to a desired consistency using a food processor or handheld liquidiser then return to the heat and bring to the boil. Stir through the milk, add the chicken and season. (Add the chicken before blending the soup if you want a smoother result.) Once heated through, ladle into warmed bowls and serve.