Preheat the oven to 350°F and grease a 9x9-inch baking dish or a similar-sized casserole dish. Set aside. Start by preparing the sweet potato mixture. Place the peeled and cubed sweet potatoes in a large pot of boiling water and cook until they are fork-tender, about 10-15 minutes. Drain the sweet potatoes and transfer them to a mixing bowl.
** You would skip this step if using canned yams, in that case drain and use about 3 cups worth. Mash in a bowl and you're ready for next steps.
Mash the cooked sweet potatoes until they are smooth and free of lumps. You can use a potato masher or a hand mixer for this step. Add 1/4 cup of unsalted butter and mix until the butter is completely melted and incorporated. In a separate bowl, whisk together the sugar, eggs, vanilla extract, and milk until well combined.
Slowly pour the egg mixture into the sweet potato mixture, stirring continuously until everything is well incorporated. Set aside.
In another bowl, combine the yellow cornmeal, baking powder, salt, ground cinnamon, ground nutmeg, and ground allspice. Mix well to ensure even distribution of the dry ingredients.
Gradually add the buttermilk to the dry ingredients and stir until you have a smooth batter. Now, fold the melted butter into the cornmeal batter, making sure it's well combined. Gently fold the cornmeal batter into the sweet potato mixture until incorporated. Pour batter into the greased baking dish, spreading it evenly.
Bake in the preheated oven for 45-55 minutes or until the spoonbread is set and the top is golden brown. You can test for doneness by inserting a toothpick into the center; it should come out mostly clean with moist bits attached when it's done.
Remove from the oven and let it cool for a few minutes before serving. Serve your Sweet Potato Spoonbread warm as a side dish or a dessert. It's delicious on its own or topped with a dollop of whipped cream