Heat oil in a medium saucepan over medium-low heat. Add onion and garlic; cook until onion is translucent, about 1 minute. Add cumin and cayenne; cook 1 minute. Add tomato paste; cook 1 minute.
Stir remaining ingredients into onion mixture; bring to a boil. Reduce heat to low. Partially cover; simmer, stirring occasionally, about 2 hours. If sauce becomes too thick, add water, a little at a time. Let cool. Puree sauce in batches in a blender until smooth.
Sauce can be refrigerated in an airtight container up to 3 weeks.