On medium heat, melt the butter with the oil in a large saucepan or dutch oven.
Add the onion and cook until soft.
Stir in the leeks and potatoes and cook, turning occasionally, until the potatoes are evenly browned.
Add salt and pepper, then the stock and milk. Bring to the boil, stirring constantly.
Reduce heat to low, cover and simmer for 20 - 25 minutes, or until the potatoes are very tender.
Puree the soup in a blender, or alternatively, pour the soup through a strainer into a bowl, using the back of a spoon to rub the vegetables through. Discard any remaining pulp.
Return soup to the saucepan and simmer for 5 minutes. Serve at once.