1. Heat the olive oil in a medium-sized saucepan. Add the onion and salt, and saute over medium heat for about 5 minutes, or until the onion is translucent. Add cumin, chili powder, and saute about 5 minutes more.
2. Add chopped tomatoes and water or juice. Bring to a boil, partially cover, and lower heat. Simmer for 30 minutes (or even longer). Add the black pepper, cayenne, and garlic, at any time during the cooking (the later you add the garlic the more distinct its presence). Add the cilantro when you are finished cooking the sauce.
3. Using an immersion blender, puree the sauce to your liking.