In a medium saucepan, heat the milk over medium heat until it begins to simmer. Stir occasionally to prevent it from scorching.
In a separate bowl, whisk together the semolina, sugar, and salt.
Gradually add the semolina mixture to the simmering milk, whisking continuously to avoid lumps.
Continue to cook the mixture over medium heat, stirring constantly, until it thickens, about 5-7 minutes.
Once thickened, remove the saucepan from heat and stir in the vanilla extract and butter until fully melted and combined.
Pour the pudding into individual serving dishes or a large bowl. Cover with plastic wrap, pressing it directly onto the surface of the pudding to prevent a skin from forming.
Chill in the refrigerator for at least 2 hours before serving.
Serve chilled, garnished with a sprinkle of ground cinnamon or nutmeg if desired.