Prepare the Sweet Potatoes: Preheat your oven to 350°F (175°C). Boil the sweet potato cubes in a pot of water until they are tender, about 15-20 minutes. Drain and mash the sweet potatoes with a potato masher or fork until smooth.
Mix the Wet Ingredients: In a large mixing bowl, whisk together the milk, heavy cream, granulated sugar, eggs, vanilla extract, cinnamon, nutmeg, ginger, and salt until well combined.
Combine Sweet Potatoes and Wet Ingredients: Add the mashed sweet potatoes to the bowl with the wet ingredients and whisk until the mixture is smooth and well combined.
Prepare the Bread Chunks: In a separate bowl, combine the bread chunks with the raisins (if using) and melted butter. Toss to coat the bread chunks evenly.
Assemble the Bread Pudding: Grease a baking dish with a little butter or non-stick spray. Spread the bread chunks evenly in the baking dish, then pour the sweet potato mixture over the bread chunks, ensuring all pieces are well coated.
Bake the Bread Pudding: Place the baking dish in the preheated oven and bake for 45-50 minutes, or until the top is golden brown and the pudding is set. You can test for doneness by inserting a toothpick into the center; it should come out clean.
Cool and Serve: Allow the sweet potato bread pudding to cool slightly before serving. Enjoy it warm with a scoop of vanilla ice cream or a drizzle of caramel sauce, if desired.