If using tofu, remove from packet, wrap in double layers of kitchen towel, then place a heavy weight over it. Set aside while you make the sauce.
If using chicken: In a small frying pan, place the chicken breasts and cover with just enough water. Switch on the heat, bring to the boil and switch off the heat immediately. Leave the chicken breasts in and let the water cool to room temperature. Remove the chicken, cut into cubes, sprinkle with salt and refrigerate.
If using paneer, cut into ½" cubes. If it doesn't contain salt already, sprinkle a pinch over it, mix well and set aside while you make the sauce.
In a food processor, combine the green chillies (if using), coriander, 1 tbsp lime juice, 3 tbsp peanuts, ginger, garlic, honey, crushed red chillies and olive oil and pulse until reduced to a coarse puree. Now add the remaining 2 tbsp peanuts and pulse until coarsely crushed.
Transfer to a serving bowl, stir in the yoghurt or cream, if using. Taste and adjust the sweet, sour and salty flavours to your taste. Don't forget that the peanuts are salted, so you won't need as much additional salt.
If using tofu, lift the weight off, unwrap and cut into 1/2" cubes. If you feel it needs salt, season with a pinch. Add to the curry.
If using paneer or the chicken, add the cubes to the curry.
Refrigerate for 30 -60 minutes if you want a chilled curry.
Serve over freshly cooked rice.