Heat the olive oil in a large pot over medium heat. Add the chopped onion and sauté until translucent, about 5 minutes.
Add the garlic, grated ginger, cumin, coriander, turmeric, cinnamon, and chili flakes. Cook for 2 minutes, stirring constantly, until fragrant.
Add the chopped parsnips, carrot, and apple to the pot. Stir to coat with the spices.
Pour in the vegetable stock, bringing the mixture to a boil. Reduce the heat and simmer for 20-25 minutes, or until the vegetables are tender.
Using an immersion blender, blend the soup until smooth. Alternatively, transfer the soup to a blender and blend in batches.
Stir in the coconut milk and season with salt and pepper to taste. Heat through for another 5 minutes.
Serve hot, garnished with fresh cilantro.