Wash, core and quarter the tomatoes, but don't peel them. Place in a blender and puree them until they are very smooth, adding some water if necessary. Set the puree aside.
Melt the butter or ghee in a large saucepan, then add the mustard and cumin seeds, let them sizzle for a few minutes. Don't be alarmed if they start making popping sounds, that is good. Add the onions and saute, stirring, until they are soft and the edges are a bit brown and crisp. Add the ground turmeric, ground cumin, cayenn, salt, and pepper, saute 30 seconds or so, then add the tomatoes, stir well, and bring to a boil. Reduce heat and simmer, stirring frequently, until the sauce is reduced a bit and no longer smells raw, about 20 minutes.
While the sauce is reducing fry the paneer cubes in some oil or ghee until they are browned, This step is not necessary, as raw paneer may be used instead of fried, but it will add a textural and flavor difference. Place the fried paneer cubes in hot water as they are cooked to keep them warm, or keep them warm in a low oven. Add the paneer to the hot tomato curry sauce and serve, garnished with cilantro, with basmati rice. Sauteed kale makes a nice side with this.