Prepare the sweet potatoes by scrubbing them clean with water and a scrub brush.
Trim 1/2 inch off both ends of each sweet potato, and place them on a wire rack set inside of a rimmed baking sheet.
Bake at 400 degrees F. for 40 to 50 minutes or until very tender. This step can be done 1 to 2 days in advance to save time on cooking day.
Let the sweet potatoes cool enough to handle. Cut each in half and slip their skins off.
Place the sweet potatoes in a large bowl or in the bowl of your stand mixer. Beat on high for 1 minute, stopping to scrap down the sides as needed.
Add the salt, sugar, milk, vanilla, and butter, and beat until the mixture is very smooth.
Add the eggs and beat until light, about 2 minutes.
Place the sweet potato mixture in the bottom of a greased 9x13-inch baking dish.
To make the streusel topping, mix the brown sugar, pecans, flour, cinnamon, and melted butter in a small bowl until it comes together like a loose dough.
Sprinkle the topping over the whipped sweet potatoes in the pan, forming an even layer.
Bake at 350 degrees F. for 35 minutes or until the topping has gotten a bit crispy.
Serve hot or warm.
Notes
You can cook the sweet potatoes ahead of time to save time on cooking day.
To make this dish ahead of time, prepare through step 8 (get the sweet potato layer ready and put it in the pan). Make the streusel, and keep it separate. Store both parts of the dish covered, separately, in the fridge until you are ready to bake, up to 2 days in advance. Let the dish come to room temperature before baking, add the topping, and bake as directed. You can also bake the cold sweet potatoes 15 minutes and then add the topping and bake for the rest of the 35 minutes.
If you'd like marshmallows on your sweet potato casserole, you sure can. Just add 2 cups mini marshmallows to the topping when you make it, and bake as directed.