Heat the olive oil over medium-low heat in a large pot and add the onions, garlic, carrots and celery. Cook until vegetables have softened and the onions are tender and translucent, about 8 minutes.Add the tomatoes with the juice and cook for 5 more minutes, until the tomatoes are fragrant.Add the drained beans, Parmesan rind and water or stock (do NOT add salt here) and bring to a boil. Lower the heat and simmer, partially covered for 1 hour, or until the beans are tender. Softening the beans can take anywhere from 1 to 2 hours, depending on the age of the beans.Once the beans are softened, add the spinach and stir until wilted.Add the salt and pepper and taste for seasoning. Top with sliced basil leaves or pesto and grated cheese (if desired).