Heat oven to 200C/fan 180C/gas 6. Pour the oil in a casserole dish or roasting tray large enough to fit all the shanks. Spend a good 10 mins browning the lamb all over. Remove the lamb, add the onion and carrot and cook for 10 mins until starting to brown. Stir in the herbs and garlic and cook for a few mins more. Stir in the flour and tomato puree, season well then pour over the wine and stock. Return the lamb shanks to the pan. Bring to a simmer, cover with a lid or tightly with foil and cook, undisturbed, for 1½-2 hrs until lamb is tender.
Remove the lamb from the sauce and set aside. Put pan back on the heat and bubble it down for about 15 mins until rich and glossy. Pass through a sieve into a jug. The lamb and sauce can be stored in the fridge for two days or frozen for one month. To serve, reheat the lamb in the sauce, adding a splash of water if the sauce is too thick.