Heat the olive oil in a large pan over a medium heat. Add the onion and basil and cook for about 5 minutes, until softened. Stir in the fresh tomatoes, chilli and salt. Cover and cook for 10 minutes. Stir occasionally. Add the tinned tomatoes and stock to the pan and stir well. Cover and simmer for 15 to 20 minutes. Puree the soup with a hand blender until smooth. Stir in the cannellini beans. Return to the pan and heat gently. Ladle the soup into warmed bowls and top each with cream.