Melt the butter in a large pot and fry the meat to seal it. Remove the meat from the pot and set aside.
Fry the onion with the garam masala and chili powder till the onion is golden.
Put the meat back in the pot with the tomato puree and the cardamoms. Stir and cover the pot with a close fitting lid reduce the heat to low and cook for 30 minutes stirring from time to time. If the curry looks too dry add a little water.
Add the vegetables, salt, lemon juice, and the water; bring to the boil, reduce heat and simmer till the meat and vegetables are tender.