How to Make It
In a skillet, toast the garlic, chiles and three-quarters of the tomato over moderately high heat, turning, until lightly charred all over, 3 minutes for the garlic and chiles and 7 minutes for the tomato; let cool. Transfer to a blender, add the fish sauce and remaining tomato and puree until nearly smooth. Season the tomato sauce with salt.
Fill a flameproof medium roasting pan with 1 inch of water and set a rack in the pan. Make 5 parallel slashes to the bone on each side of the snapper. Lightly season the fish inside and out with salt. Stuff the ginger in the slashes, then stuff any remaining ginger inside the cavity along with the lemongrass and lime leaves. Set the fish on a large rimmed heatproof plate and set it on the rack; the water should not touch the plate.
In a bowl, whisk the fish sauce, lime juice, sugar and chiles. Pour the sauce over the fish. Cover the pan tightly with foil and bring the water to a boil. Steam the fish until opaque throughout and the meat flakes easily, 10 to 12 minutes. Carefully remove the foil and transfer the fish and its juices to a platter. Garnish with basil and serve with the roasted tomato sauce and rice.
It is important to use fresh (not dried) kaffir lime leaves here. They are available at Asian supermarkets; if sold frozen, defrost before using.