Place cauliflower pieces in a mixing bowl and drizzle with oil. Add 1 teaspoon cumin, ½ teaspoon coriander, a sprinkle of salt, and some cracked black pepper and toss together until cauliflower is well coated.
Place a large skillet over medium-high heat and add 1 ½ tablespoons butter.
Add cauliflower and sear on all sides, about 3 to 4 minutes.
Using a slotted spoon, transfer cauliflower to a plate and set aside.
Add remaining butter to skillet. Add shallot, garlic and ginger and sauté 3 to 4 minutes.
Add remaining spices and continue to sauté for an additional 3 to 4 minutes.
Stir tomato puree into skillet and lightly season with salt and pepper.
Lower heat to medium-low and simmer for 5 minutes.
Add cauliflower back into skillet, season with salt and pepper and continue to simmer for about 10 minutes, or until cauliflower has softened.
Stir cream or yogurt into cauliflower mixture and simmer for an additional 2 to 3 minutes or until sauce is thick and creamy and cauliflower is tender but not mushy. Adjust seasonings.
Top with chopped cilantro and serve over cilantro-basmati rice, with a side of grilled pita bread.