In a large pot or Dutch oven, heat the oil over medium heat.
Add the onions and cook until softened, about 5 minutes.
Add the garlic, ginger, cumin, coriander, turmeric, cayenne pepper, and garam masala. Cook for 1 minute.
Add the potatoes and stir to coat with the spices.
Add the crushed tomatoes and water and bring to a simmer.
Reduce the heat to low and simmer until the potatoes are cooked through and the sauce has thickened, about 25 minutes.
Garnish with cilantro leaves and serve.