Begin by preparing the cauliflower. Cut the head of cauliflower into bite-sized florets and set aside.
In a large skillet, melt the butter over medium heat. Once melted, add the chopped onions and sauté until they are translucent, about 4-5 minutes.
Add the minced garlic and ginger to the skillet and cook for an additional 1-2 minutes, until fragrant.
Sprinkle in the turmeric, coriander, garam masala, and chili powder. Stir well to combine, allowing the spices to toast for about 1 minute.
Add the cauliflower florets to the skillet, tossing them in the spice mixture. Cook for about 5 minutes, allowing the florets to slightly soften.
Pour in the heavy cream and season with salt to taste. Stir everything together until the cauliflower is well coated in the creamy sauce.
Reduce the heat to low, cover the skillet, and let it simmer for about 8-10 minutes, or until the cauliflower is tender and the sauce has thickened.
Taste and adjust seasoning if needed. Garnish with fresh cilantro if desired before serving.