Place the peeled and cubed sweet potatoes to a large pot of salted water.
Bring to a boil over high heat, then lower heat to a simmer and cook until very tender, about 15-20 minutes.
Drain, cool and mash.
Preheat the oven to 350°.
Butter a 2 quart baking dish.
Whisk together in a large bowl, the butter, mashed sweet potatoes, and remaining ingredients.
Transfer the mixture into the prepared baking dish and spread on the streusel topping and bake until mostly set in the center and golden brown on top, about 25-30 minutes.
Combine together sugars, flour and spices.
Add cold butter pieces and mix in with pastry cutter or fingers until mixture resembles coarse meal.
Chef's notes: Can be made in advance. Store in an air tight container for up to 3 days prior to use.