Wash the potatoes and cut them into 1-inch (2.5cm) cubes. Place the cubed potatoes in a bowl of cold water to prevent discoloration.
In a large skillet or wok, heat the vegetable oil over medium-high heat. Add the cumin seeds and mustard seeds. Allow them to crackle and sizzle for 30 seconds to 1 minute.
Add the diced onion and sauté until translucent, about 3-5 minutes.
Stir in the minced garlic and grated ginger. Cook for an additional minute, being careful not to burn the garlic.
Drain the potatoes and add them to the skillet. Toss to coat the potatoes evenly with the spiced oil.
Sprinkle in the chili powder, turmeric, coriander powder, and garam masala. Mix well to ensure the potatoes are evenly coated with the spices.
Add the diced tomatoes and just enough water or vegetable broth to cover the potatoes.
Bring the mixture to a boil, then reduce the heat to medium-low. Cover the skillet and simmer for 15-20 minutes, or until the potatoes are fork-tender.
Remove the lid and continue cooking for an additional 5-10 minutes, or until the sauce has thickened and the potatoes have developed a slightly crispy exterior.
Adjust the seasoning to your taste, adding more salt, spices, or a splash of water as needed.
Garnish the Bombay potatoes with freshly chopped cilantro.
Serve hot, either as a side dish or as the star of the meal, accompanied by your choice of Indian breads, such as naan or roti.