Heat oil in a large skillet or pan over medium heat. Add cumin seeds and mustard seeds. Allow them to splutter for a few seconds.
Add chopped onions and sauté until they turn translucent.
Add minced garlic, grated ginger, and chopped green chilies. Sauté for another minute until fragrant.
Stir in the chopped tomatoes and cook until they turn soft and mushy, about 5-7 minutes.
Add ground coriander, ground cumin, turmeric powder, and salt. Mix well and cook for another 2 minutes to allow the spices to blend together.
Add the cubed potatoes to the pan and mix until they are well coated with the spice mixture.
Pour in ½ cup of water, cover the pan, and let the potatoes cook until they are almost tender, stirring occasionally, about 10-12 minutes.
Once the potatoes are almost cooked, add the chopped spinach to the pan. If the pan is getting dry, add a bit more water. Mix well, cover, and cook for an additional 5 minutes until the spinach wilts and combines with the potatoes.
Sprinkle garam masala over the curry and give it a final stir. Adjust salt and spices according to taste.
Garnish with fresh cilantro leaves and serve hot with rice or naan bread. Squeeze fresh lemon juice over the curry before serving.