Heat the oven to Gas Mark 4, 180°C (350°F).
Heat a tablespoon of olive oil in a large frying. Add the finely chopped onions and sauté them over a medium heat for about 6-8 minutes while you assemble the rest of your ingredients. When the onions are softened, but not browned, transfer them to a plate to cool.
Meanwhile mix together the beef, garlic, ginger, cumin, paprika, Tabasco, coriander and mint. Season with a little salt and black pepper. When the onion has cooled add half of it to the meatball mixture. Combine well. Shape this mixture into small balls, approximately 4cm in diameter. (The meatballs can be frozen at this stage and stored in the freezer for up to three months. Allow to defrost fully before cooking.)
Heat another tablespoon of oil in the frying pan and brown the meatballs. As they brown, transfer them to an ovenproof dish.
Add the remaining sautéed onion to the pan along with the tomato purée, tinned tomatoes, stock or water and the sugar. Bring to the boil, stirring all the time. Reduce the heat and allow the sauce to simmer for 10 minutes. Taste and season.
Pour this mixture over the meatballs and place in the oven, uncovered for 10 minutes. Remove from the oven and break in the eggs. Return to the oven and cook for another 10 minutes approximately until the egg whites have set.