Rinse the uncooked rice under cold water until the water runs clear.
Heat oil in a large skillet over medium heat. Add the rice and toast for 6–8 minutes, stirring often, until lightly golden.
Add diced onion and cook for 2–3 minutes until softened. Stir in garlic and cook for 30 seconds.
Pour in the tomato sauce, broth, salt, cumin, and chili powder. Stir to combine.
Bring to a gentle boil, then reduce heat to low, cover, and cook for 18–20 minutes without lifting the lid.
Turn off heat, let the rice rest covered for 5 minutes, then fluff with a fork.
Stir in peas, carrots, or cilantro if using, and serve warm with lime wedges.