Mix together in a large bowl the yogurt, ginger-garlic paste, tandoori paste, tomato puree, soy sauce, vinegar, lemon juice, egg, cayenne pepper (adjust amount to suit your taste), coriander, cumin, turmeric, salt and pepper. Place the fish fillets into the marinade and turn to coat each side. Cover bowl with plastic film and refrigerate for an hour.
Preheat oven to 400 degrees F (200 degrees C). Use one teaspoon each of the butter and olive oil to coat a shallow baking dish large enough to accommodate the fish in a single layer.
Remove fish from marinade and place in baking dish. Drizzle with remaining olive oil and dot with the remaining butter. Bake in preheated over until golden brown on top, about 30 to 40 minutes.
Place fish on warm serving platter and garnish with cilantro, lemon wedges, and onions.