Heat the olive oil in a large saucepan set over a medium heat. Sweat the onion and garlic for 4-5 minutes, stirring occasionally, until softened. Drain the sliced leek and add to the pan. Add the courgette and beans and cook for a further 5 minutes, stirring occasionally.
Cover with the stock and bring the mixture to the boil. Reduce to a simmer and stir in the milk. Simmer the soup for 20-25 minutes until the beans are soft.
Once the beans are soft, stir through the chopped parsley. Season to taste before ladling into soup bowls. Serve immediately.