If your server doesn't support SNI, or you're concerned about browsers that don't, you'll need a Cert per domain and you'll need an ip address per domain.
Prior to SNI, when a client made a https connection, the server had to accept it and decrypt it before it knew that http host the client wanted to connect to. In that instance, if the server was serving multiple http hosts on the same ip address, the server would always assume that the client wanted to connect to the first ordered host in the configuration. If the certificate served in response didn't match the host requested by the client, the browser would generate an error. Hence, you had to run different domains on different ip addresses.
Where SNI is enabled, the server presents all available certs to the client request, and the client can match its host request to the correct cert if its exists, meaning a browser error is only generated if none of the certs match.
This allows you have host multiple https hosts on the same ip address. You will still however need an https cert per domain (free or commercial).