Combine the warm milk, yeast, and sugar. Let bloom for about 5 minutes. Meanwhile, add the the flour, ginger, cinnamon, and salt to the bowl of a stand mixer fitted with the dough hook. Add the warm milk, eggs, and butter. Start mixing on low, then slowly increase to medium speed. Keep mixing until completely incorporated and a soft, slightly wet dough forms. Add to an oiled bowl, then cover with plastic wrap and a kitchen towel and let rise in a warm place for about 1-2 hours, or until doubled in size.
While that's resting, make the filling by combining the brown sugar, granulated sugar and spices. In a separate bowl combine the room temp butter and molasses.
Line a deep 9x13 inch baking dish with parchment paper.
Dust your work surface with flour and add your dough. Roll it out to a rectangle about 16 inches by 10 inches. Spread the molasses butter and then sprinkle the sugar mixture, making sure to press the sugar down into the butter (to help when you roll this into a log to not get sugar everywhere!).
Preheat oven to 350 degrees F. Starting with the longer side of the rectangle, roll the dough tightly into a log, pinching the ends and cutting them off so you get a clean cinnamon roll. Cut the log in half and then each half into 6 pieces (making 12 rolls). Add them to your prepared baking dish and cover with plastic wrap and a kitchen towel. Put in a warm area and let rise or, if making ahead, place in the fridge until ready to bake! (Remove from the refigerator about an hour before baking.)
Bake the rolls for about 30 minutes or until golden brown. Let rest for 10 minutes.
Make the frosting by combining the butter, cream cheese, powdered sugar, cinnamon and vanilla and beat until creamy. Spread on the warm cinnamon rolls.