Heat the coconut oil in a large stockpot and add the diced onion. Cook the onion for roughly 4 minutes over medium-high heat until it begins to brown.
Add the garlic and ginger and cook for another 2 minutes until garlic becomes fragrant.
Next, add the garam masala, cumin, turmeric, cayenne pepper (if using) and 2 cups (200 g) of cauliflower florets to the pot. Stir and cook for 3 more minutes until the spices become fragrant.
Add the diced tomatoes, broth and coconut cream to the pot, bring to a boil, then reduce the heat and simmer 15 minutes.
Blend the simmered soup with an immersion blender until smooth.
Add the remaining 2 cups (200 g) of cauliflower florets to the soup and simmer for an additional 15 to 20 minutes until the cauliflower is cooked.
Season the soup with salt to taste.
Serve the soup with fresh cilantro, chopped fresh ginger and coconut milk.