Heat olive oil in a large pot over medium heat.
Add chopped onion, garlic, celery, and carrots. Sauté for 5-7 minutes until soft.
Stir in diced potatoes and vegetable broth. Bring to a boil, then simmer for 15-20 minutes until potatoes are tender.
Add sweetcorn and simmer for another 5 minutes.
Use an immersion blender to blend part of the soup for a creamy texture, or transfer half to a blender and puree.
Stir in milk and cream, season with salt and pepper, and heat through.
Serve hot, garnished with chopped parsley.