In a skillet, heat oil or lard over medium heat. (Lard is solid at room temp, but melts easily when heated). Add rice. Stir often until rice is light golden brown.
Add onion, garlic, and chili powder and cook, stirring often, until the onion is almost translucent.
Stir in 1 cup of the chicken stock, tomato paste, and salt. Cook, uncovered, until broth is almost absorbed.
Transfer rice to a sauce pot and stir in remaining chicken stock.The rice cooks much better in a sauce pot. I have found that in a skillet the cooking liquid evaporates too quickly, which causes the rice to be undercooked.
Bring to a boil, turn the heat to low, and cover the pot with a well fitting lid. Cook until stock has been absorbed and rice is tender, about 15 minutes.
Sprinkle with chopped cilantro, if desired.