Cook the pasta in a large saucepan of boiling salted water for 10 minutes, or according to the packet instructions. Drain the pasta, reserving some of the cooking water.
Meanwhile, heat a splash of olive oil in a large frying pan over a medium heat and fry the leeks gently for 5 minutes, until soft. Put into a bowl and set aside.
Add a little more oil to the pan, increase the heat, then add the spinach and cook for a minute or 2, until wilted. Place the spinach onto a plate that has been lined with kitchen paper, cover with more kitchen paper and squeeze out the excess moisture.
Heat some more oil in the frying pan, add the mushrooms and fry over a high heat until soft and caramelised. Add the garlic, fry for a couple of minutes, then return the leeks and spinach to the pan.
Put the tofu and soy sauce in a tall jug and add 3 tablespoons of the reserved pasta water. Use a stick blender to blend to a smooth sauce, then pour into the pan with the mushroom mixture.
Add the cooked pasta to the pan and mix everything together. Season to taste with salt and pepper, then serve.