Start by mixing the yeast with warm milk. Allow to proof for 10 minutes then stir in ¼ cup (50g) of sugar, the sour cream, eggs and vanilla and mix well.
Add the flour then start kneading the dough, adding the melted butter gradually, while kneading. This can easily be done in a stand mixer or by hand. Knead for 5–10 minutes then place aside and allow the dough to start rising for 15 minutes. After 15 minutes, knead the dough again for 5 minutes then allow it to rise on room temperature, covered with plastic wrap, for 1 hour. You don’t need to knead the dough the second time, but I found that this yields an easier to work with dough that has an improved texture after baking as well.
In the meantime, mix the brown sugar, white sugar and cinnamon in a bowl.
Place the dough on a floured working surface and roll it into a 11x15 inch (40x30cm) rectangle.
Spread the softened butter over the dough then top with the sugar and cinnamon mixture, pressing it slightly into the dough to make sure it sticks.
Roll the dough on its length as tight as possible then cut slices of dough and place them with the cut facing up in a baking tray lined with parchment paper, allowing enough room to rise once again.
Allow the rolls to rise for 30–40 minutes on room temperature.
Pre-heat your oven to 350F – 180C. When it’s hot enough, place the rolls in the oven and bake for 30–35 minutes or until fragrant, golden brown and slightly crusty. The best way to check for doneness is to insert a toothpick in the thickest part of the rolls. If the toothpick comes out without traces of raw dough, the rolls are done. If you can still see traces of dough, bake a few more minutes then check again.
When done, place the pan aside to cool to room temperature.
Mix the cream cheese, sugar, vanilla and butter in a bowl until smooth and creamy.
Spread the glaze over each cinnamon roll and top with chopped walnuts.
Serve right away or store in an airtight container to keep them soft and fresh all the time.