Heat oil in a large deep frying pan over medium high heat. Add onion and sauté until light golden then throw in the garlic and cook for 1 minute. Put in 1/3 of the water and tomato then season with salt, chilli powder, cumin and turmeric. Simmer for 1 minute.
Add beef and cook for at least 10 minutes, adding another 1/3 of the water when it gets dry. When the beef mixture is dry pour in the black-eyed beans. Cook for 3 minutes. Stir in the remaining water and reduce the heat to low. Cover and simmer until all of the water has cooked down and you can see the oil.
Remove from the heat and mix in the garam masala. Transfer to a serving dish and sprinkle the lemon juice, coriander and green chilli over the top.