Heat the coconut oil in a heavy-bottomed saucepan over a medium heat. Add the onion and season, then cover the pot and sauté over a low heat for 20 minutes, until the onion is very soft and sweet.
Add the garlic and ginger and sauté for 1 minute, then add the cumin, coriander and garam masala. Sauté for another minute, then add the carrots, stock, and more seasoning. Bring to a boil, then turn down the heat and simmer gently for about 20 minutes, or until the carrots are very tender.
Carefully transfer the soup in batches to a high-speed blender, or blend the soup directly in the pot with an immersion blender. Season to taste with salt and pepper.