Heat oil in a large skillet over medium heat. Whisk in the flour, chili powder, paprika, and cumin. Cook for 1 minute while constantly whisking.
Add 1/2 cup water and whisk until it all turns into a thick paste.
Pour in the rest of the water (or chicken broth), tomato sauce, tomato paste, onion powder, garlic powder, ground cinnamon, salt, and pepper; whisk until thoroughly combined.
Bring the mixture to a boil; reduce heat to medium-low and continue to cook for 5 minutes or until the sauce thickens; whisk frequently.
If sauce is too thick for your liking, add a bit more water or broth to thin it out.
Taste for seasonings and adjust accordingly.
Remove from heat; let cool before storing away.
Store in an airtight container or a jar; keep in the fridge for 1 week.
Notes
Storage: Any leftover enchilada sauce can be safely stored in the fridge for up to a week, or consider freezing it for up to 3 months. Let the sauce cool to room temperature before putting it in a mason jar. Leave some space at the top for the sauce to expand, and avoid fully tightening the lid until it's completely frozen. Alternatively, you could use a freezer bag; squeeze out any excess air before sealing it.
Variations: While chili powder, cumin, and garlic powder remain key ingredients, feel free to alter the remaining spices in accordance with your taste preferences.