The Apache Virtual Host documentation says :
You can alternatively specify an explicit IP address in place of the * in <VirtualHost *:80> directives. For example, you might want to do this in order to run some name-based virtual hosts on one IP address, and either IP-based, or another set of name-based virtual hosts on another address.
These virtual host blocks get executed on a server which obviously has 1 IP address. Why would there be a necessity to mention different IP address in these VirtualHost directives?