Put the meat in a non-metallic bowl and rub in the vinegar and salt. Set aside for 30-40 minutes.
Heat the oil in a medium heavy-based saucepan over a low heat and add the cinnamon, cardamon and cloves. Let them sizzle for 25-30 seconds, then add the onion, increase the heat to medium and cook, stirring regularly, until the onion is sift but not brown.
Add the ginger and garlic pastes and cook for a further 2-3 minutes, then add the cumin, turmeric and chilli powder. Cook for 1-2 minutes and add the tomatoes. Increase the heat slightly and continue to cook until the tomatoes are reduced to a paste-like consistency and the oil separates from the paste. Reduce the heat towards the last 2-3 minutes.
Add the meat, fenugreek leaves and water. Bring to the boil, reduce the heat to low and simmer uncovered for 90 minutes until most of the water is cooked off.
In a small pan, melt the butter over a low heat and stir in the garam masala. Cook for 30 seconds, then fold this spiced mixture into the curry. Remove from the heat, garnish with coriander and serve.