Heat oil and margarine in a small skillet or wok over medium high heat.
Add onion and saute until very brown, 10 to 15 minutes.
(Note: This is an important step; if onion is not cooked well, sauce will taste funny.
),Add ginger and garlic to onion and saute for an additional 2 minutes.
Process onion/ginger/garlic mixture in food processor until smooth.
Do not rinse food processor.
,Place onion mixture in a large saucepan.
Stir in the cinnamon, black pepper, coriander, cumin, turmeric and cayenne pepper and cook over low heat until mixture is thick and has the consistency of a paste.
,Puree tomatoes, chile peppers and cilantro in food processor until smooth.
Add to onion mixture and stir well over low heat, cooking off moisture from tomatoes and cilantro.
Add yogurt a little bit at a time, stirring constantly to avoid curdling.
,Blend the whole mixture in food processor to puree it (for a very smooth sauce).
Return to saucepan, add water and increase heat to high; bring sauce to a rolling boil.
Cover saucepan and boil for 3 to 5 minutes.
Reduce heat and simmer until desired consistency is reached.
,To serve with meat, cook the meat first separately, then simmer for 5 to 10 minutes in the sauce before serving over rice or with bread.
To serve with vegetables, steam raw veggies first 4 to 5 minutes, then simmer for 5 to 10 minutes in the sauce before serving.
,Information is available on Basic Curry Sauce RecipeEnjoy