In a heavy-bottomed soup pot, heat 2 tablespoons olive oil over medium heat until hot, but not smoking. Add the onion and cook, stirring for 1 minute. Lower the heat to low, and add the celery, carrots and garlic. Allow to simmer over low heat until the vegetables begin to soften, about 10 minutes. Add the ham pieces and cook 2 more minutes, stirring occasionally. Add the tomatoes and the parsley. Cook for 5 more minutes so that the flavors meld.
Add the hot water or stock and season with salt and pepper. Bring the mixture to a boil, and add the zucchini and the rice. Bring back to a boil and then lower the heat so that the liquid is simmering. Let simmer gently until the rice is cooked, about 40 minutes. Remember to stir the soup occasionally. Add more water or stock, if necessary.
When the rice is cooked, add the roasted peppers and remove the soup from the heat. Stir in Parmesan, to taste, and top each serving with some chopped basil.
Recipe courtesy of Mario Batali