Rinse the rice. Place the rice in a fine-mesh sieve and rinse under cool water until it runs mostly clear.
This removes excess surface starch that can make the pudding gluey instead of creamy.
Start with water and rice. In a heavy-bottomed saucepan, combine the rinsed rice and water. Bring to a gentle simmer over medium heat and cook for 5–7 minutes, stirring occasionally, until most of the water is absorbed.
Add milk and seasonings. Stir in the milk, salt, and cinnamon stick (or ground cinnamon). Reduce heat to low.
You want a bare simmer—just a few lazy bubbles. Too hot, and the milk may scorch.
Simmer slowly and stir. Cook uncovered for 25–35 minutes, stirring every few minutes, scraping the bottom and sides. The mixture should thicken gradually as the rice releases starch.
If it’s bubbling too vigorously, lower the heat.
Sweeten and flavor. When the rice is tender and the pudding is thick but still pourable, stir in the sugar and vanilla. Cook 3–5 minutes more, stirring often, until the sugar dissolves and the texture is silky.
Finish with butter. Remove the cinnamon stick. Stir in the butter until melted for a richer mouthfeel.
If using raisins or other dried fruit, fold them in now so they plump slightly from the heat.
Adjust consistency. Rice pudding thickens as it cools. If it seems too thick on the stove, add a splash of warm milk until it’s just looser than you want for serving.
Serve warm or chill. Spoon into bowls and dust with cinnamon, or transfer to a container to cool. For cold pudding, press a piece of parchment directly onto the surface to prevent a skin from forming.