Prepare the Potatoes: Peel and dice the potatoes into small cubes. Set aside.
Sauté the Aromatics: Heat the vegetable oil in a large skillet or Dutch oven over medium heat. Add the chopped onion and sauté until translucent, about 5 minutes. Add the minced garlic and grated ginger, and sauté for another 1-2 minutes until fragrant.
Add the Spices: Stir in the ground cumin, ground coriander, turmeric, red chili powder, and garam masala. Cook for 1 minute, stirring constantly to combine the spices with the onion mixture.
Add the Potatoes: Add the diced potatoes to the skillet and stir well to coat them with the spice mixture. Cook for 2-3 minutes, stirring occasionally.
Add the Liquids: Pour in the coconut milk and vegetable broth. Stir well to combine. Add the diced tomato, salt, and black pepper. If using green chilies, add them now.
Simmer the Curry: Bring the mixture to a simmer, then reduce the heat to low. Cover the skillet and let the curry simmer for 20-25 minutes, or until the potatoes are tender and the sauce has thickened. Stir occasionally to prevent the potatoes from sticking to the bottom.
Garnish and Serve: Taste and adjust the seasoning if needed. Garnish with chopped fresh cilantro. Serve the potato curry hot with steamed rice, naan, or roti.