Heat oil in a non-stick pan or heavy-bottomed pot over medium-high heat. Add the cumin seeds and let them sizzle for a few seconds. Add the chopped onion and sauté, stirring frequently, until it turns golden (~6-7 min).
Add the garlic and ginger and sauté until the raw smell disappears, about 30 seconds. Add the tomatoes, spice powders (coriander, cumin, turmeric, red chili, black pepper) and salt.
Cook until the tomatoes are soft and the oil begins to separate from them (4-5 min). If needed, deglaze the pan with 2 tbsp of water to help the tomatoes.
Add the potatoes, cauliflower, and green chili pepper. Sauté for about 5 minutes, until softened.
Turn the heat down to low-medium, cover, and let cook for about 25 minutes, stirring once or twice in between.
When the vegetables are completely tender (there should be little resistance when you break the potato) and all the moisture is gone, turn off the heat.
Add the soy sauce, garam masala, and lemon juice. Taste and add salt, if needed. (If you didn't add soy sauce, you'll probably need a bit more salt.) Mix well and garnish with chopped cilantro. Serve with roti, naan, or rice.