In a large bowl, toss the chicken pieces with the lemon or lime juice, garlic, salt and pepper and marinate for at least 1 hour or overnight.
Heat the olive oil in a large, heavy bottomed pot over medium flame. Pat the chicken pieces dry and sauté then in small batches to brown on all sides. Remove to a platter and set aside.
Add a little more oil to the pot if needed and sauté the onion, peppers, garlic and optional ham until the onion is translucent but not browned.
Stir in the rice and tomatoes and cook for another 1-2 minutes. Then add the stock or water, olives, peas, oregano, salt and pepper. Lay the browned chicken pieces over the top. Bring to a boil, reduce heat to low, cover tightly and simmer for about 30 minutes.
Remove from heat and let rest, covered, 10 minutes. Toss all the ingredients gently with a fork, garnish with the chopped cilantro and serve.