Heat the oil in a large skillet over medium heat until shimmering. Add the chopped onion and sauté for about 5 minutes, until it turns golden and fragrant.
Add the minced garlic and grated ginger to the skillet. Cook for 30 seconds to 1 minute until aromatic, stirring constantly to prevent burning.
Stir in the cumin seeds (or ground cumin), coriander powder, and turmeric. Toast the spices for about 30 seconds until they release a warm, nutty aroma.
Pour in the crushed canned tomatoes and cook for 8-10 minutes, stirring occasionally. The sauce should thicken and deepen in color, smelling rich and slightly smoky.
Add the cubed paneer and sliced mushrooms to the skillet. Gently stir to coat them with the sauce, and cook for about 5 minutes until the paneer is heated through and mushrooms release their juices.
Season with salt and optional chili powder. Let everything simmer for another 2-3 minutes, allowing the flavors to meld and the sauce to thicken slightly.
Turn off the heat and stir in the cream or yogurt, mixing until the sauce becomes velvety and fragrant. Let it sit for a minute or two to settle.
Serve the hot paneer mushroom masala with steamed rice or flatbread, garnished with fresh cilantro if desired. The sauce should be rich, fragrant, and coated evenly over the ingredients.