Coat the bottom of a large pot with the oil and place it over medium heat. Let the oil heat up for a minute, then add the onion. Sweat the onion for about ten minutes, stirring often, until it softens up and just begins to brown.
Stir in the garlic, ginger, garam masala, cumin, and turmeric. Cook the mixture while stirring constantly for about a minute, until it becomes very fragrant.
Stir in the broth and green beans. Raise the heat and bring the liquid to a boil, then lower the heat until it's just cooking at a low simmer. Cover the pot and let the beans cook for ten minutes.
Remove the lid from the pot and stir in the potatoes. Cover the pot again. Continue simmering the mixture for about fifteen minutes, until the potatoes are able to be pierced easily with a fork, but are not yet falling apart. Uncover the pot and give everything a stir occasionally, to ensure that the potatoes cook evenly. Try to submerge the potatoes in the liquid as much as you can while they simmer.
Uncover the pot. Stir in the tomatoes and tomato paste. Continue simmering the curry for about ten minutes more, uncovered, until the sauce thickens slightly.
Remove the pot from heat. Season the curry with salt and pepper to taste.
Serve the curry with rice, topping each portion with a generous sprinkle of fresh cilantro.