Fill a large saucepan with lightly salted water and bring to the boil over a high heat. Add the potatoes and cook until just tender but still quite firm then add the cauliflower for the remainder of cooking time, about 6 to 8 minutes (the cauliflower will take less time to cook than the potatoes). Drain and set aside.
Meanwhile, in a frying pan over a medium heat warm a little oil and add the onions then cook and stir until soft, about 5 minutes. Add the beef mince and stir to brown. If desired, drain the fat.
Preheat the oven to 180 degrees C.
Add the mushrooms and leeks then cook until soft. Pour over the stock and season well then simmer for 5 to 10 minutes. Gradually sprinkle in gravy granules and stir until the sauce has thickened. Stir in the parsley then spoon into the base of a casserole dish.
Mash the potatoes and cauliflower together with the margarine and milk until smooth, seasoning well. Spoon the mash over the meat and smooth with the back of a spoon.
Bake in the oven for 40 minutes then remove and top with cheese. Return to the oven for 20 minutes until the cheese is melted and golden brown.
The beef can also be substituted for minced turkey, swapping the stock and gravy for poultry flavoured.