Preheat the oven to 400℉ (205℉).
Wash sweet potatoes and remove any blemishes or dark spots. Pierce each sweet potato several times with a fork. Then wrap them in aluminum foil.
Bake at 400℉ (205℉) for 50-60 minutes or until a fork easily pierces into the center. Let them cool slightly.
Once sweet potatoes are cool enough to handle, remove the skin or scoop the sweet potato flesh out. Place the sweet potato flesh in a large bowl.
Mash sweet potatoes with a potato masher until smooth. Then add the milk, eggs, heavy cream, butter, brown sugar, cinnamon, ginger, nutmeg, vanilla extract, and salt to taste. Whisk the mixture until smooth.
Spread the mashed sweet potatoes into a greased baking dish.
For the streusel topping, mix the flour, brown sugar, butter, and salt in a medium bowl until moistened and the mixture clumps together.
Stir in the pecans and spread the streusel mixture over the top of the sweet potatoes in an even layer.
Bake at 400℉ (205℉) for 25-30 minutes or until lightly browned and bubbly.
Sprinkle the marshmallows over the top, then broil for 3-5 minutes until the top is golden brown. Remove from the oven, let it cool slightly, and serve hot.