Make the doughnut pudding
1. Preheat the oven to 350°F (176°C). Butter a 9-by-5 inch loaf pan.
2. Place the doughnuts in the loaf pan. In a bowl, whisk the eggs, rum if using, cinnamon, sugar, and vanilla until well blended. Add the milk and cream and whisk to blend. Pour the mixture over the doughnuts, turning the top pieces so that all of the doughnuts become soaked in the liquid.
3. Bake for 45 to 50 minutes, until the pudding is browned on top and firm in the center. Let cool for 10 minutes in the pan.
Make the icing
4. While the pudding cools, whisk the icing ingredients together in a small bowl until smooth.
5. Serve the pudding in thick slices, still warm, drizzled with the icing.