In a bowl, mix together yogurt, garam masala, cumin, paprika, turmeric, cayenne pepper, salt, half of the minced ginger and half of the minced garlic. Add paneer cubes and coat well with the marinade. Set aside for 15 minutes.
Heat 1 tablespoon of oil in a pan over medium heat. Add the marinated paneer and cook until golden brown on all sides, about 5 minutes. Remove paneer from the pan and set aside.
In the same pan, add the remaining oil and sauté onions until they turn translucent. Add the remaining ginger and garlic, and cook for another 2 minutes.
Stir in the crushed tomatoes and bring to a simmer. Cook for 10 minutes, stirring occasionally.
Lower the heat and add the heavy cream, stirring until well combined. Add the cooked paneer to the sauce and simmer for 5 minutes.
Garnish with chopped cilantro and serve hot with cooked basmati rice.