Bring a medium saucepan of salted water to a boil. Add potato cubes and simmer 6-8 minutes until just tender when pierced; they should not fall apart.
Drain and let the potatoes steam-dry for a few minutes; this reduces surface moisture so they crisp in the skillet.
Heat oil in a heavy skillet over medium-high heat until it shimmers. Add mustard seeds and cumin seeds; listen for the mustard seeds to pop, about 30 seconds.
Add chopped onions and sauté until translucent and slightly golden, about 4-5 minutes, releasing a sweet, caramelized aroma.
Stir in ginger-garlic paste and cook 30-45 seconds until the raw edge softens and the mixture becomes glossy.
Add tomatoes, turmeric, chili, coriander powder, and salt. Cook until tomatoes collapse and the oil separates, about 3-4 minutes; you’ll see a glossy sheen.
Gently place parboiled potatoes into the pan. Toss carefully to coat with the masala; press down lightly and let them sear without stirring for 2 minutes to build crisp edges.
Toss again and continue to cook, turning occasionally, until potatoes are golden and slightly crusted in places, about 6-8 minutes. You’ll smell warm spices and toasted notes.
Sprinkle garam masala and lemon juice; fold in cilantro. Taste and adjust salt. The final texture should be crisp outside, tender inside, with layered spice flavors.
Serve hot as a potato sabzi alongside roti, or as a potato curry accompaniment to steamed rice.