Heat 2 tablespoons oil or ghee in a wok or large pan over medium heat. Add sliced onions and chopped ginger, sauté until onions turn golden brown.
Add turmeric powder, chile powder, and salt to the pan. Sauté for 2 minutes, stirring constantly to prevent burning.
Add chopped mushrooms, potatoes, and sliced tomatoes to the pan. Cook over gentle heat until potatoes are tender, adding a splash of water if needed to prevent sticking.
While the curry cooks, prepare the tempering: heat 2 tablespoons oil in a small skillet over medium heat. Add mustard seeds and fry until they begin to pop.
Add curry leaves, sliced garlic, and shredded coconut to the tempering oil. Stir and fry until coconut turns golden. Remove from heat immediately.
Once potatoes are tender, stir sliced spinach into the curry and cook until wilted.
Add garam masala, chopped cilantro, and lemon juice to the curry, stirring well to combine.
Pour the tempering mixture over the curry and serve hot with dal and rice.