Heat half the oil in a small frying pan over a medium heat. Add the onion and a pinch of salt and cook for five minutes, or until softened. Add the garlic and spices and cook for a further two minutes. Remove from the heat, tip into a bowl and leave to cool.
Meanwhile, for the salsa, combine the tomatoes, spring onions, avocado, lime and coriander in a bowl. Mix in half the chilli, taste and stir in more chilli if required. Add a drizzle of olive oil and season to taste with pepper, then set aside.
Once the onion mixture has cooled, add the turkey and coriander and mix thoroughly. Using wet hands, shape the mixture into 16 golf-ball sized balls and then transfer to a baking tray and cover with cling film.
Refrigerate for 15-30 minutes; this will help the meatballs to firm and will stop them from falling apart during cooking.
Preheat the oven to 200C/400F/Gas 6. Heat the remaining oil in a large, non-stick frying pan and fry the meatballs for 2-3 minutes, turning occasionally, until golden-brown on all sides. You may need to do this in batches to avoid overcrowding the pan.
Transfer the meatballs to a clean baking tray and cook in the oven for 10-12 minutes, or until cooked through. Leave to rest for a few minutes before serving with the salsa, lime wedges and lettuce leaves.