Hello Aftab,
the use of IGP is almost always recommended with or without route reflection and/or BGP confederations.
The reason is that iBGP sessions are usually configured using loopback addresses for better stability as session endpoints.
The IGP solves the problem of routing exchange of loopback addresses making them routable in the AS domain easily.
Both BGP route reflectors and BGP confederations are ways to achieve scalability in an iBGP deployment as they allow to minimize the total number of iBGP sessions in the domain.
In fact, without these two features each iBGP peer should have a direct iBGP session with every other iBGP device in the domain leading to N*(N-1)/2 BGP sessions that would overcome the capabilities of a single device (here N is the number of iBGP devices in the AS).
So the IGP provides IP reachability between endpoints and the other two features are scalability tools with route reflection far more used then BGP confederations.
In some specific environment like a bank network I have seen the case of use of BGP without an underlying IGP but I would say it is more an execption then the common rule
Hope to help
Giuseppe