Make the sauce: Heat a drizzle of olive oil in a medium saucepan over medium heat. Add the yellow onion, garlic, salt, cumin, chili powder, cinnamon, nutmeg, paprika and cayenne pepper. Cook, stirring occasionally, until the vegetables have softened (about 5 minutes). Pour in the tomato sauce (and water, if you're using). Peel the pepper, discard the stem and seeds, and roughly chop. Toss the chopped pablano into the pan and simmer, uncovered, for about 5 minutes. Purée using an immersion blender (or carefully transfer to a blender or food processor) until smooth.
Roast the peppers: Roast the poblano pepper (and the red peppers if you're using fresh) directly over the flame of a gas burner, turning frequently with tongs, until evenly charred. Or you can place the peppers on a baking sheet under the broiler, turning once or twice, for 5 to 7 minutes. Transfer the peppers to an airtight bowl (or cover the bowl with plastic wrap) and set the bowl aside to steam for 10 minutes.