Heat the butter in a large saucepan and add the onion and basil. Leave to fry for about 5 minutes until onion is soft, then add garlic (garlic burns quickly so adding it later on avoids this). Leave to fry for a couple minutes.
Add the lentils and allow to cook together for a minute.
Add the tomatoes. Mix all together and let cook for about 5 minutes over a low heat. Add some pepper and salt along the way.
Add the stock and let simmer for about 10 minutes or until the lentils are soft and there's not too much liquid.
Once cooked and seasoned, blend until smooth. Of course, if you like a chunky soup, there's no need to blend.
Chop the spinach and add to the soup, let wilt and mix into the soup. You can always blend after this step if you wish.