Grease a 900ml (1 ½ pint) loaf tin, line the base with greaseproof paper.
Melt 15g of the butter in a frying pan. Add half of the onions and cook until softened. Add the paprika and cook for 1 minute, stirring. Remove from the heat.
Add the beef, breadcrumbs, garlic, tomato puree and herbs. Season to taste. Stir thoroughly until evenly mixed then bind with the beaten egg.
Spoon the mixture into the loaf tin, level the surface and cover tightly with foil. Stand the tin in a roasting tin and pour in water to a depth of 2.5cm (1 inch). Bake the meat loaf at 180˚C (350˚F) mark 4 for 1 ½ hours.
Meanwhile, melt the remaining butter in a saucepan. Add the rest of the onion over a low heat, stirring occasionally, for 10 minutes until soft but not coloured. Add the flour and cook over a low heat, stirring, for 1-2 minutes.
Remove the pan from the heat and gradually stir in the milk, stirring after each addition to prevent lumps forming. Bring to the boil slowly and continue to cook, stirring continuously, then simmer for 2-3 minutes until thick and smooth. Simmer very gently for a further 2-3 minutes. Add salt & pepper to taste.
To serve, turn out the meat loaf on to a warmed serving plate and peel off the greaseproof paper. Serve with the hot onion sauce, with potatoes and vegetables.