NEXT_HOP tells you the IP address to forward traffic toward. It's mandatory in every UPDATE.
eBGP behavior: When you receive a route from an eBGP peer, NEXT_HOP is that peer's IP. You reach external destinations through that neighbor.
iBGP behavior: By default, NEXT_HOP doesn't change between iBGP peers. If router A learns from external neighbor X, it tells iBGP peer B: "NEXT_HOP is X."
The problem: B might not reach X. Your IGP must include eBGP peer addresses, or use "next-hop-self" to replace external NEXT_HOPs.