In a large pot, heat the vegetable oil over medium-high heat.
Add the chicken pieces and brown them on all sides. Remove the chicken from the pot and set aside.
In the same pot, add the finely chopped onions and sauté until golden brown, about 5-7 minutes.
Add the minced garlic and grated ginger, and cook for another minute until fragrant.
Stir in the ground coriander, ground cumin, and ground turmeric.
Add the lemongrass knots and bay leaves to the pot.
Return the browned chicken to the pot and pour in the chicken broth or water.
Bring to a boil, then reduce the heat and simmer for about 45 minutes to 1 hour, or until the chicken is cooked through and tender.
Remove the chicken pieces from the pot and set aside to cool slightly.
Add the diced potatoes and sliced carrots to the pot. Simmer for about 15 minutes, or until the vegetables are tender.
Once the chicken is cool enough to handle, shred the meat into bite-sized pieces, discarding the skin and bones.
Return the shredded chicken to the pot.
Stir in the shredded cabbage and bean sprouts. Cook for another 5 minutes until the vegetables are tender.
Add the soy sauce, lime juice, salt, and black pepper to taste.
To serve, place a portion of cooked rice or vermicelli noodles in a bowl.
Ladle the saoto soup over the rice or noodles.
Top with sliced hard-boiled eggs, fresh cilantro, and fried onions.
Enjoy your meal!