Heat 2 tablespoons oil in a heavy-bottomed saucepan over medium-high heat. Add the dry rice and toast, stirring constantly, for 4 to 5 minutes until the grains turn golden and smell nutty.
Add the diced onion and stir for 2 minutes. Add the garlic and stir for 1 minute.
Add the tomato puree and cook for 2 minutes, stirring, until it darkens slightly.
Pour in the chicken broth. Add cumin, chili powder, and salt. Stir and bring to a full boil.
Reduce heat to the lowest setting. Cover with a tight-fitting lid and cook for 18 to 20 minutes without lifting the lid.
Remove from heat. Leave covered for 5 minutes. Fluff with a fork from the bottom up and serve.