Preheat the oven to 350°F (175°C).
In a large pot, boil the sweet potatoes until tender, about 20 minutes. Drain and mash them.
In a large bowl, combine the mashed sweet potatoes, granulated sugar, beaten eggs, melted butter, milk, and vanilla extract. Mix well.
Transfer the sweet potato mixture into a greased baking dish.
In a separate bowl, mix the chopped pecans, brown sugar, flour, and softened butter to form the streusel topping.
Sprinkle the pecan streusel evenly over the sweet potato mixture.
Bake in the preheated oven for about 30-35 minutes or until the topping is golden brown.
Serve warm and enjoy!