Combine meat, water, turmeric, salt, and black cardamom pods in a large saucepan. Bring to a boil, then simmer 20 minutes for chicken and 45 to 50 minutes for lamb, until meat is cooked. Remove meat, reserving broth.
Heat oil in a large skillet. Add onions and sauté until reddish brown and crisp. Remove and drain on paper towels.
Add spices to the skillet and stir. Add yogurt and garlic. Cook, stirring constantly, until mixture has reduced to a thick sauce.
Add meat to the yogurt sauce. Cook, stirring occasionally, 3 to 4 minutes. Add reserved broth. Continue cooking until sauce is reduced to come about 1/3 of the way up the meat.
Crumble onions and sprinkle over meat. Stir in cilantro and pepper. Spoon off excess oil and remove whole spices before serving.