Combine, tomato, avocado, 2 tablespoons coriander and half the lemon juice in a bowl. Season with salt and pepper. Cover. Set aside.
Combine chilli powder, garlic, 2 tablespoons oil, remaining coriander and remaining lemon juice in a shallow ceramic dish. Add fish. Turn to coat.
Preheat oven to 180°C. Line a large baking tray with baking paper. Warm taco shells according to packet directions.
Meanwhile, heat remaining oil in a large frying pan over medium heat. Cook onion for 4 to 6 minutes or until softened. Remove to a bowl. Cover to keep warm. Cook fish, in batches, for 2 to 3 minutes each side or until cooked through. Divide onion and fish between taco shells. Top with sour cream and avocado mixture.