Start by melting butter in a non-stick pan over medium heat until it shimmers and smells nutty.
Add finely chopped onion and cook, stirring often, until it turns golden and fragrant, about 8 minutes. The aroma should deepen and the onion should be slightly sticky.
Stir in minced garlic and grated ginger, cooking for another minute until fragrant and slightly sizzled, filling the air with spicy warmth.
Add chopped tomatoes and turmeric, then cook, stirring occasionally, for about 10 minutes until the mixture thickens and the tomatoes break down, releasing a sweet, smoky aroma.
Transfer the cooked mixture to a blender and puree until smooth, then pour it back into the pan, adjusting with a splash of water if needed for consistency. The sauce should be vibrant and thick.
Lower the heat to medium-low and stir in heavy cream and the remaining butter; cook gently for 5 minutes until the sauce is glossy and slightly thickened.
Add the paneer cubes into the sauce, gently folding them in so they’re coated with the rich, orange-colored gravy. Let them heat through for about 5 minutes.
Finish by stirring in lemon juice, tasting, and adjusting salt as needed. The sauce should taste bright, balancing the richness with a lively citrus note.
Garnish with a pinch of garam masala if desired, then serve hot with naan or rice, spooning plenty of that luscious, bright sauce over each bite.