Preheat your oven to 350F (175C). Lightly grease a 9x13-inch baking dish or a similarly sized casserole dish.
Prepare the sweet potatoes: wash and pierce 4 medium sweet potatoes and bake them whole until tender, about 45 to 60 minutes. Alternatively, peel, cube, and boil until fork-tender, then drain. Scoop out the flesh and mash until smooth. Measure about 3 cups of mashed sweet potatoes.
In a large bowl, combine the mashed sweet potatoes, melted butter, 1/2 cup brown sugar, milk, beaten eggs, vanilla, cinnamon, nutmeg, and salt. Mix until well blended and creamy. Taste and adjust sweetness or spices if needed.
Spread the sweet potato mixture evenly into the prepared baking dish, smoothing the top with a spatula.
If using a pecan streusel topping: In a small bowl, stir together chopped pecans, 1/4 cup brown sugar, and cubed cold butter. Use your fingers or a fork to rub the butter into the pecans and sugar until the mixture crumbles into small pieces. Sprinkle this streusel evenly over the sweet potato layer.
If skipping the streusel, simply sprinkle mini marshmallows evenly over the surface of the casserole.
Bake the casserole for 20 to 25 minutes, or until the filling is set and warmed through. Remove the dish from the oven and increase the oven temperature to broil on high.
Top with 2 cups of mini marshmallows if you haven't added them already. Place the casserole under the broiler for 1 to 3 minutes, watching closely, until the marshmallows are puffed and golden brown. Rotate the dish if your broiler browns unevenly.
Carefully remove from the oven and let the casserole rest for 5 minutes before serving. This helps the filling settle and makes it easier to serve.
Serve warm as a sweet side dish alongside roasted meats, green beans, or your favorite holiday mains.