Preheat oven to 170C. Heat a large frying pan with enough olive oil to cover the bottom. Dust with flour and brown the osso buco all over, season with salt and pepper. You will need to do this in two or three separate batches.
In a heavy-based pot or casserole dish large enough to comfortably fit everything, cook the onion in the olive oil and butter until soft. Add the carrots and celery and continue cooking for 5 minutes until they too have softened. Season with salt, add the garlic and cook for a minute before adding the browned osso buco. Now add the red wine, some salt, the tomatoes, thyme and bay leaf and about 1 cup of water - or just enough to cover. Cover with a lid and put in the oven for 1 3/4 to two hours or until the meat is tender and falling off the bone. You will need to check on the casserole from time to time, stirring and adding a little water if needed.
To make the gremolata, chop everything very finely and mix together.
Serve osso buco on a bed of polenta or mashed potatoes or shredded through a pasta. Sprinkle with the gremolata.