Drain the porcini, reserving the soaking liquid, then squeeze dry and roughly chop.
Heat the butter and oil in a large, flameproof casserole over a low heat, add the shallots and leek and fry gently for 8 minutes or until softened. Add the garlic and fry for a further 2 minutes. Stir the rice into the pan and cook for 1–2 minutes, then pour over the Marsala and bubble, stirring continuously, until evaporated.
Mix in the mushrooms, reserved soaking liquid and stock, stir well and bring to the boil. Season to taste with salt and pepper, cover and place in a preheated oven, 180°C (350°F), Gas Mark 4, for 45 minutes, stirring occasionally.
Add the asparagus and stir well. Return to the oven for a further 15 minutes or until the rice is tender and most of the liquid has been absorbed. Remove from the oven and leave to stand for 2–3 minutes. Spoon the risotto into serving bowls and sprinkle with the grated Parmesan, if liked.