Place the sweet potatoes in a large pot and cover with water. Bring to a boil and cook until tender, about 15 minutes. Drain well.
Return the potatoes to the pot. Add the milk, 2 tablespoons butter, 2 tablespoons brown sugar, egg, vanilla extract, and cinnamon. Mash until smooth.
Transfer the mashed mixture to a greased baking dish and spread it evenly.
In a small bowl, combine the pecans, flour, 3 tablespoons brown sugar, and 3 tablespoons softened butter. Mix with a fork until crumbly.
Sprinkle the pecan mixture evenly over the sweet potato layer.
Bake at 350°F for 25 minutes, or until the topping turns golden and the edges bubble slightly. Let it rest for 5 minutes before serving.