Peel and dice the potatoes into 1-inch cubes, keeping them uniform for even cooking. Rinse and roughly chop the spinach, or thaw and squeeze out excess water from frozen spinach.
Heat the vegetable oil in a large skillet over medium heat until it shimmers. Add the diced onion and sauté for about 5 minutes until golden and fragrant, stirring occasionally.
Add the minced garlic and grated ginger to the skillet. Cook for about 1 minute until aromatic, stirring constantly to prevent burning.
Stir in the cumin seeds, coriander powder, and turmeric. Toast the spices for 30 seconds until fragrant and slightly darker, stirring gently.
Pour in the crushed tomatoes and stir well, scraping the bottom of the pan. Let the mixture simmer gently for 8-10 minutes until it thickens and fills the kitchen with a rich, roasted aroma.
Add the diced potatoes to the sauce, stirring to coat them evenly. Cover the skillet and simmer on low heat for 15-20 minutes, stirring occasionally, until the potatoes are tender and easily pierced with a fork.
Fold in the chopped spinach, spreading it evenly over the curry. Cover again and cook for another 2-3 minutes until the spinach wilts to a bright green and releases a fresh aroma.
Uncover and taste the curry, then season with salt and a pinch of garam masala if using. Let it rest off the heat for 2 minutes to allow flavors to meld.
Serve your hearty spinach potato curry hot with rice or flatbread, garnished optionally with fresh herbs or a squeeze of lemon for extra brightness.