Grind one large onion with ginger and garlic to make a smooth paste. Take the paste out in a bowl and keep aside.
Make a smooth paste of tomatoes and green chilies in the same grinder.
Peel the medium size onion and separate its layers. Dice the onion layers into medium-sized pieces.
Heat some oil in a pan and shallow fry the onion pieces till they become translucent. Take them out on a paper towel and keep aside. Shallow fry the paneer cubes in the same pan till they start turning brown. Take them out on a paper towel and keep aside.
In the same pan, add cumin seeds and let them splutter. You may add some more oil if required. When the cumin seeds stop spluttering, add the onion-garlic paste and fry till it turns golden brown.
Add salt and all the dry spices except fenugreek leaves and garam masala, saute for a few seconds. If the paste is too dry add around 2 tablespoons of water so that the spices don't get burnt.
Now add the tomato paste to the pan and fry till the tomatoes turn mushy and are nicely cooked. Once the tomatoes are done, add around 1.5 cups water and let it simmer for 3-4 minutes.
Next add in the shallow fried paneer, onion cubes and dry fenugreek leaves powder, garam masala. Mix well. Cook for around 1-2 minutes and then switch off the gas.
Garnish with chopped coriander leaves or chopped green chilies and thinly sliced ginger. Serve hot with any Indian bread or rice and dal.