Melt the butter in a heavy-based pan and add the ginger, allspice, cumin, chilli powder, curry powder, and ground coriander.
Cook over a low heat for three minutes, stirring continuously. Add the vegetables, stir to combine, and cook for a further eight minutes. Stir in the lentils and rice before adding the stock. Bring to the boil and simmer for 30 minutes or until the vegetables are tender and the lentils have started to break down.
Blend the soup in a liquidiser or food processor until smooth. Return to the heat and add the coconut milk, lime juice, and coriander. Heat through but do not let it boil again. Serve immediately.