First cut off any green leaves from the cauliflower, then slice the thick stem to an even flatness so that your head of cauliflower can stand without tipping over. Set it aside and proceed to make the marinade sauce.

You will need a bowl large enough to fit the whole head of cauliflower. In this bowl combine all of the following ingredients: lemon juice, 1 1/2 teaspoons red chili powder, 2 teaspoons of paprika, 1 teaspoon sea salt, 4 cloves minced garlic, 1 tablespoon minced ginger, 1 teaspoon of garam masala spice mix, and 1/3 cup yogurt.

Give the mixture a good stir to combine everything well. Taste and if necessary adjust the seasonings. Place the whole cauliflower in the bowl and either use a spoon or your hands to rub the marinade sauce over the entire head of cauliflower -- really try to get in the little crevices between the florets. Cover the bowl and place in the refrigerator, allowing to sit for at least one hour or overnight.

After the hour (or overnight) marination time, remove the bowl from the refrigerator. Prepare a baking sheet to place the cauliflower on -- you can rub the baking sheet with a bit of oil before putting the cauliflower on top of it if desired.

Preheat the oven to 390 F for 10 minutes. Then place the baking sheet in the oven and roast for one hour or until you can easily insert a knife into the cauliflower and is soft all the way through. Once that is achieved you may want to turn on the broiler and let the cauliflower caramelize or crisp up a little on top -- totally optional. When the cauliflower is soft and cooked through remove from the oven and allow to cool a little before serving.

While the cauliflower is in the oven roasting, prepare the butter sauce topping: First, melt the butter and once melted add the onion and sauté until soft, then add the 1 tablespoon ginger and 3 cloves minced garlic and sauté for 2 to 3 minutes. Next add 1 teaspoon turmeric, 1 1/2 teaspoons garam masala, chili pepper, cinnamon and salt to taste; stir the spices into the other ingredients and cook for a couple of minutes. Now add 1/2 cups each tomato puree and water into the pan and mix until well combined. Cover and allow to simmer for 10 minutes. Add crushed fenugreek leaves and the ground almonds into the pan and stir well. Simmer for another 10 minutes over low heat to allow the sauce to thicken up a bit. Once the sauce is ready you can turn off the heat and set it aside until the cauliflower is roasted.