6 dried ancho chiles
5 garlic cloves, unpeeled
1 teaspoon ground cinnamon
1/4 teaspoon dried basil
1/4 teaspoon dried oregano
1/4 teaspoon cumin seeds
1 1/2 cups unsalted homemade or canned low-sodium chicken broth
1 tablespoon balsamic vinegar
1 1/2 teaspoons vegetable oil or rendered bacon fat
2 medium onions, chopped medium fine
One 28-ounce can crushed tomatoes or whole plum tomatoes, pureed, with their juices, in a blender
One 1-ounce chunk smoked ham, cut into 4 pieces
3/4 ounce Mexican chocolate or 1 tablespoon unsweetened cocoa powder
1 to 2 teaspoon sugar
Meanwhile, add the garlic cloves to the skillet and toast for about 15 minutes, turning occasionally, until the skins have blackened in spots and the garlic has softened somewhat. Remove from the heat.
In a blender, combine the garlic, cinnamon, basil, oregano, cumin seeds, chicken broth, and vinegar. Drain the ancho chiles and add to the mixture. Blend at high speed until smooth, about 1 minute.
In a large nonstick skillet, combine the oil and onions, cover and cook over low heat until the onions have begun to release some liquid, about 5 minutes. Uncover, increase the heat to moderate, and sauté the onions until golden brown, 10 to 15 minutes.
Add the ancho chile mixture and cook, stirring, for 5 minutes. Stir in the tomatoes and ham, partially cover, and simmer until the sauce is very thick, about 25 minutes.
The sauce can be refrigerated, covered, for up to 1 week or frozen for up to 3 months.