In a medium saucepan heat the water or broth to simmering.
Heat the olive oil in a saucepan large enough to hold all the ingredients. Stir in the leek and onion and cook over low to medium heat for 5-6 minutes, or until the onion softens. Add the celery, carrots and garlic, and cook, stirring often, for another 5 minutes. Add the potatoes and cook for 2-3 minutes more.
Pour in the hot water or broth and stir well. Add the herbs and season with salt and pepper. Bring to the boil, reduce heat slightly, and cook for 10-12 minutes.
Stir in the peas, if fresh, and the zucchini/courgettes. Simmer for 5 minutes more.
Add the tomatoes and frozen peas, if you're using them. Cover the pan and boil for a further 6-8 minutes.
About 10 minutes before serving the soup, uncover the pan and stir in the cooked or canned beans. The soup will be very thick. Simmer for 10 minutes. Stir in the pesto sauce. Taste for seasoning. Simmer for 2-3 minutes more before removing from the heat. Allow the soup to stand for a few minutes before serving. Pass the grated Parmesan separately. Minestrone may be re-heated the next day or eaten cold. It also freezes well.