Rinse the rice. Place the rice in a fine-mesh strainer and rinse under cool water until the water becomes mostly clear. Drain thoroughly. Excess water can cause hot oil to splatter, so let the rice drain well.
Make the tomato mixture. Add the Roma tomatoes, onion, garlic, and enough chicken broth to help everything blend smoothly to a blender. Blend until completely smooth.
Measure the cooking liquid. Combine the blended tomato mixture with enough remaining chicken broth to give you about 3 cups of total cooking liquid.
Toast the rice. Heat the oil in a medium saucepan over medium heat. Add the drained rice and cook, stirring frequently, for about 6 to 8 minutes. The grains should become lightly golden and smell toasted.
Add the tomato mixture. Carefully pour the tomato and broth mixture into the toasted rice. It may bubble aggressively at first, so pour slowly.
Season the rice. Add the salt and carrots, if using. Add the whole serrano now if you want its flavor in the rice.
Bring to a simmer. Allow the liquid to come to a gentle boil, then immediately reduce the heat to low.
Cover and cook. Cover the pot tightly and cook for about 18 to 20 minutes. Resist the urge to repeatedly lift the lid or stir the rice.
Add peas. If using frozen peas, scatter them over the rice during the final few minutes of cooking and replace the lid.
Rest the rice. Remove the pot from the heat and leave it covered for 10 minutes. This final steaming period helps the grains finish cooking evenly.
Fluff and serve. Remove the serrano if used. Gently fluff the rice with a fork and serve warm.