Using the coarse shredder holes on a box grater, shred the tomatoes into a bowl (you'll get pulp). Discard skin.
Heat oil over medium-high heat in a large frying pan. Add the onion and sauté until translucent, 5 minutes. Add the garlic and cook 1 minute. Stir in rice and cook, stirring occasionally, until slightly toasted, about 3 minutes.
Add tomato pulp, tomato sauce, and broth and bring to a boil. Add chile, cilantro, and salt, reduce heat to a simmer, and cook, covered, until liquid is absorbed and the rice is tender, about 20 minutes.
Remove frying pan from heat and let stand 8 minutes, covered. Fluff rice with a fork and transfer to a serving bowl.