Pour 8 cups of water into a large stock pot and add the chicken, the half onion (not diced), garlic, salt and pepper. Bring to a low boil and then cook over medium heat for 20 minutes.
While the chicken is cooking, heat olive oil in a large skillet. Add the diced onions, tomatoes, bell pepper and celery to the pan and cook until tender. Remove from heat and set aside.
After the chicken has cooked for 20 minutes, pour the onion and tomato mixture into the chicken and remove the large onion piece from the pot of soup. Add the cabbage, potatoes, corn, carrots, squash, herbs, and chicken bouillon to the soup.
Place the whole cilantro bunch on top of the soup and bring it back to a simmer. Cook the soup for 30 minutes, or until the chicken is cooked through and the potatoes are fork tender.
Remove cilantro pieces before serving if you wish or serve them in the soup. Serve the soup garnished with more freshly chopped cilantro and a lime wedge.
