In a glass baking-dish toss the shrimp with the garlic, chiles and olive oil. Cover and marinate, refrigerated, for at least 24 hours. Preheat grill or broiler and cook shrimp, brushing occasionally with marinade, for 2 to 3 minutes per side.
Toast seeds and peppercorns in dry skillet. Transfer to grinder and grind. Transfer to food processor and add shallots, garlic, ginger, lime zest and juice, and lemon zest, cilantro, basil and chiles and process to a smooth paste. Season with salt and pepper. At this point mixture can be stored in airtight container up to 1 week. In a bowl combine curry mixture and yogurt, lime juice. Stir.
In a saucepan, combine tomatoes, sugar, salt, garam masala, serrano, garlic, ginger, and lime zest. Bring to a boil. Lower the heat and simmer for 5 minutes. Transfer to food processor and puree, adding oils. Puree until smooth. Season, to taste, and finish off with some lemon juice.