Rinse and sort the black-eyed peas, then place them in a large pot or bowl. Cover with cold water, ensuring the water level is at least 1 inch above the peas. Allow to soak overnight at room temperature. Drain thoroughly before cooking.
In a large Dutch oven or soup pot, melt butter over medium heat. Sauté the diced onion, bell pepper, celery, minced garlic, thyme, oregano, and cayenne pepper for about 5 minutes, or until the onion becomes translucent.
Stir in the chicken broth, bay leaf, ham hock or bone, and the drained black-eyed peas. Bring the mixture to a boil, then lower the heat to a gentle simmer. Cook for 45 to 60 minutes, or until the peas are tender (refer to notes on cooking time).
Once the peas are soft, remove the ham hock or bone and transfer it to a plate.
Ladle 2 cups of the broth from the pot into a medium saucepan. Add the rice, cover, and simmer over low heat for 15 minutes. Turn off the heat and let the rice rest, still covered, for an additional 5 minutes.
Meanwhile, add the canned diced tomatoes along with their juices to the black-eyed peas. Shred the meat from the ham hock or bone and return it to the pot. Continue to simmer uncovered until the flavors meld together.
Discard the bay leaf and adjust the seasoning of the peas with salt and freshly ground black pepper to taste.
To serve, spoon cooked rice into individual bowls, then ladle the ham and black-eyed pea mixture on top. Garnish with chopped green onions for added flavor and presentation.