Set a large heavy duty dutch oven over medium-high heat with the ghee or oil. Once hot, add in the onion, garlic, and serrano peppers and cook until softened, about 3 to 5 minutes. Stir in the ginger, spices, and tomato paste. Stir and cook for about 1 to 2 minutes, or until the tomato paste has darkened. Stir in the canned tomatoes. Cover and cook until just beginning to simmer. Stir in the cilantro and heavy cream. Lower the flame and simmer until the sauce has reduced slightly and thickened, about 30 to 40 minutes.
In the meantime, set a large skillet over medium high heat with a tablespoon of oil. Once hot, add in the tofu and cook, stirring often, until browned and crispy on all sides.
Transfer the tofu, paneer, and garbanzo beans to the sauce, stir to evenly incorporate and cook for about 10 minutes longer to warm through all the ingredients. Serve the masala with cooked basmati rice and naan. Garnish with fresh cilantro. Enjoy!