Preheat the oven to 190°C/gas 5. Spread the breadcrumbs on a plate and leave them to dry a little while preparing the rest of the ingredients.
Cut the tops off the peppers and scoop out the seeds and membranes. Blanch the peppers and their tops in a saucepan of boiling water for 1 minute. Remove from the heat. Lift out the peppers with a draining spoon, then let them drain, cut-side down, on kitchen paper.
Heat the oil in a large frying pan over a medium heat. Add the onion and cook for 10 minutes, stirring frequently, until softened. Turn up the heat a little, then add the beef and garlic and fry, stirring and breaking up the meat with a wooden spoon, until browned and crumbly. Add the tomatoes, herbs and 3 tbsp of the stock. Cook for a further minute, then remove from the heat and stir in the breadcrumbs. Season to taste.
Stand the peppers upright in a lightly oiled, large ovenproof dish or roasting tin, spoon in the beef mixture and press it down gently. Sprinkle with the grated cheese and replace the tops on the peppers. Scatter the sliced fennel in a single layer around the peppers and pour the rest of the stock into the dish or tin.
Cover the dish with foil and bake for 40 minutes or until the peppers and fennel are tender, basting halfway through cooking with the stock in the dish. Serve hot or warm.
Large beef tomatoes can be filled with the same mixture. Slice a lid off each tomato (allow 2 per serving) and scoop out the seeds and core. The tomatoes do not need to be cooked in boiling water. Chop the cores and add to the stir-fry lamb mixture with 1 finely chopped onion.