What you’ll need:
Melt the butter or margarine in a large skillet with a tight-fitting lid.
Sauté until nicely browned all over; 10 to 15 minutes, and remove.
Add the onion, garlic, and ginger and sauté until golden; about 10 minutes.
Add the tomato, salt, curry powder, cinnamon stick, cardamom seeds, turmeric, cumin, paprika, and red pepper flakes; cover and cook over low heat; 3 minutes.
Stir in the yogurt until well blended.
Add the chicken or tofu pieces and simmer, covered, turning occasionally, 30 to 40 minutes.
Arrange pieces on a platter and spoon on sauce.
Garnish with cilantro or parsley.