In a large stockpot, heat oil. Cook onion and celery in oil for 5 to 8 minutes, or until tender. Add garlic, stir constantly for 30 seconds. Stir in beans, chicken stock, pepper, thyme and water. Bring to the boil, reduce heat and simmer for 15 minutes.
With slotted spoon, remove 2 cups of the bean and vegetable mixture from the soup and set aside.
In blender at low speed, blend remaining soup in small batches until smooth (it helps to remove the centre piece of the blender lid to allow steam to escape.) Once blended, pour soup back into stockpot and stir in reserved bean and vegetable mixture.
Bring to the boil, occasionally stirring. Stir in spinach and cook 1 minute or until spinach is wilted. Stir in lemon juice, remove from the heat and serve with freshly grated Parmesan cheese on top.