Heat the olive oil in a heavy, medium-sized pot over medium heat. Add the onions, celery, bell pepper, garlic and ham and cook until the vegetables are softened, about 10 minutes. Add the shrimp, tomatoes with juice, chicken broth, bay leaf, salt, black pepper, and cayenne pepper, and bring to a boil. Add the rice. Stir, reduce the heat to low, and cook, covered, for 10 minutes. Stir and cook, covered, until all the liquid is absorbed and the rice is tender, about another 10 minutes. Remove from heat and allow to sit for 10 minutes. Fluff the rice with a fork. Adjust the seasonings, add the chopped parsley and onion tops, and combine with the fork.
Makes 6 servings