Heat a non-stick pan over medium heat and melt 1 tablespoon of butter. Add the chopped onion and sauté until golden and fragrant, about 5-7 minutes.
Add the chopped tomatoes to the pan and cook until they break down and the mixture thickens, about 10 minutes. The sauce should look glossy and vibrant red.
Transfer the cooked mixture to a blender and purée until smooth and silky. Return the blended sauce to the pan and simmer gently.
Add the remaining 2 tablespoons of butter to the sauce and stir until melted. Mix in cumin seeds, coriander powder, and garam masala, cooking for 30 seconds until fragrant.
Gently fold in the heavy cream, stirring until the sauce is rich and glossy. Taste and add salt as needed.
Meanwhile, heat a tablespoon of oil in a separate pan. Fry the paneer cubes until golden and slightly crispy on edges, about 2-3 minutes. Remove and set aside.
Gently add the fried paneer to the sauce and simmer together for another 5 minutes, allowing the flavors to meld and the paneer to soak up the sauce.
Crush the kasuri methi between your palms and sprinkle into the curry. Stir well and cook for 1 minute to release its earthy aroma.
Remove from heat, garnish with a dollop of butter if desired, and serve hot with naan or rice. The sauce should be glossy, and the paneer tender and flavorful.