In a medium saucepan, combine the rinsed rice, water, cinnamon stick, and lemon or orange peel (if using). Bring the mixture to a boil over medium heat, then reduce to low. Let it simmer uncovered for 15-18 minutes, or until the rice is tender and most of the water is absorbed.
Remove the cinnamon stick and citrus peel from the cooked rice. Drain any excess water if necessary. The rice should be soft and well-cooked at this point.
In the same saucepan, add the whole milk to the cooked rice. Stir well to combine and bring the mixture back to a gentle simmer over medium heat. The milk should start thickening the rice, creating a creamy texture.
Once the milk is absorbed and the mixture is creamy (about 10 minutes), stir in the sweetened condensed milk. This step adds richness and sweetness to the pudding, giving it that signature flavour.
Add the vanilla extract, stirring constantly to ensure its evenly distributed. Continue cooking for another 10-12 minutes, stirring occasionally to prevent the mixture from sticking to the bottom of the pan.
Taste the arroz con leche and adjust sweetness if necessary by adding a little more condensed milk or sugar. If the pudding appears too thick, you can add a bit more whole milk to reach your desired consistency.
Once the pudding reaches a rich, creamy consistency, remove it from heat. Let it sit for a few minutes to cool slightly and thicken. The rice should be fully cooked and tender, with the mixture velvety and smooth.
Serve the arroz con leche warm or chilled, depending on preference. Garnish with a light sprinkle of ground cinnamon on top for added aroma and flavour. Pair it with a cup of coffee or serve it on its own as a comforting dessert.