Begin by bringing a large pot of salted water to a boil. Add the cauliflower florets and cook for about 5-7 minutes until they are tender but still firm. Drain the cauliflower in a strainer and set aside.
In a frying pan over medium heat, melt the butter. Once the butter is melted, add the chopped onion and sauté for about 5 minutes until it becomes translucent.
Add the minced garlic and ginger to the frying pan, cooking for an additional 2 minutes until fragrant.
Stir in the ground cumin, ground coriander, turmeric, garam masala, and chili powder. Cook the spices in the mixture for about 1-2 minutes to bloom their flavors.
Pour in the heavy cream and stir well. Bring the mixture to a gentle simmer and let it cook for 3-5 minutes, allowing it to thicken slightly.
Add the cooked cauliflower to the creamy sauce. Stir gently to coat the cauliflower evenly with the sauce. Let it simmer for an additional 5 minutes to absorb the flavors, seasoning with salt to taste.
Remove from heat and garnish with chopped fresh cilantro before serving.