Just to clarify, here is a simple diagram and observations for both iBGP and eBGP scenarios:
eBGP scenario:
In the above scenario, router A will get the routes advertised by router "C" with the following information by default:
Destination: 200.200.200.0/24
Peer: 192.168.1.6
Next-Hop: 192.168.1.4
(router C)
If we enable next-hop-self in router "B" for BGP neighbor "A" we would get:
Destination: 200.200.200.0/24
Peer: 192.168.1.6
Next-Hop: 192.168.1.6
(router B)
iBGP scenario:
In the above scenario router B is the reflector for client/neighbor router "A".
Router "A" will get the routes reflected by router "B" (previously learned from router "C") with following information:
Destination: 200.200.200.0/24
Peer: 192.168.1.6
Next-Hop: 192.168.1.4
(router C)
This result will happen regardless of using "next-hop-self" option in router "B" to neighbor "A".
There is a route-policy option to include the "next-hop" action, but I don't believe that applies to this case.