Combine all ingredients except the paneer cubes in a bowl and whisk together.
Add the paneer cubes and gently spoon the marinade over to cover them.
Cover the bowl and place in the refrigerator for at least 2 hours.
In a large saucepan, melt the butter over medium heat. Add the garlic and ginger and sauté for 1-2 minutes.
Add the tomato puree, sugar, garam masala, cumin, coriander, red chili powder, and turmeric; stir to fully combine.
Bring to a simmer over medium-low heat and allow to simmer, stirring periodically for 15-20 minutes.
While the sauce is simmering, remove the paneer cubes from the marinade and place them on a baking sheet lined with parchment paper or a silpat and place them underneath the broiler for 1-2 minutes. Set aside.
Add the water and simmer 5 additional minutes.
Stir in the cream and fenugreek, add the paneer cubes and simmer a final 10 minutes.
Salt to taste.
Serve over rice with a garnish of cilantro leaves.