Put the ginger, garlic, and 4 tablespoons of water into the blender. Blend well until you have a smooth paste.
Heat oil in a wide heavy pot over a medium heat, brown the meat cubes in serveral batches and set to one side.
Put the cardamom, bay leaves, cloves, peppercons and cinnamon into the same hot oil. stir once and wait until the cloves swell and the bay leaves begin to take on colour.
Now put in the onions. Stir and fry for 5 minutes until they turn a medium brown colour.
Put in the ginger garlic paste and stir for 30 seconds.
Add the coriander, cumin, paprika-cayenne, and salt. Stir and fry for 30 seconds.
Add the fried meat cubes and juices.
Stir for 30 seconds, now add 1 tablespoon of yoghurt, stir until well blended .
Add the remaining yoghurt, a tablespoon at a time in the same way. Stir and fry for another 3 minutes.
Now add 275ml of water if you're cooking lamb or chicken and 425ml of water if you're cooking beef. Bring to the boil, scraping all the browned spices off the sides and bottom of the pot. Cover and cook on low for an hour if you're cooking chicken or lamb and 2 hours if cooking beef, (or until meat is tender.).
Every 10 minutes give the meat a good stir. When the meat is tender take off the lid, turn the heat up to medium, and boil away some of the liquid.
All the fat that collects in the pot may be spooned off the top.
Sprinkle the garam masala and black pepper over the meat before you serve and mix them inches.