Preheat the oven to 350 degrees. Lightly grease an 8x8 inch or 2-quart baking dish with cooking spray.
Peel and cube the sweet potatoes. Add the cubed sweet potatoes to a large pot of salted water. Bring the sweet potatoes to a boil over high heat, then reduce to a simmer and continue to cook until the sweet potatoes are fork-tender, about 20-30 minutes. Drain and transfer the sweet potatoes to a large bowl.
In the large bowl with the sweet potatoes, add the eggs, butter, milk, brown sugar, vanilla extract, salt, nutmeg, and cinnamon. Using a handheld electric mixer, beat the sweet potato mixture until well blended.
Transfer the sweet potato mixture to the prepared baking dish. Spread the mixture out with a spatula. Set aside and prepare the streusel topping.
Finely chop the pecans into small bite-size pieces. Set aside.
In a medium-sized bowl, combine the melted butter, flour, brown sugar, and salt. A crumb-like mixture will form. Next, mix in the pecans.
Sprinkle the streusel mixture on top of the sweet potatoes in an even layer. Bake until set and golden on top, about 30-40 minutes. Serve warm. Enjoy!
To fill a 9x13 inch baking dish, simply double this sweet potato casserole recipe.
Feel free to prepare this sweet potato casserole in advance. Cover with tin foil and store in the refrigerator up to 24 hours before baking. Note that baking times may be increased if the dish is baked from a cold state.