I'm using the same codebase for two websites. Both need to be accessible through SSL. Is this possible with just one apache vhost?
Yes and no.
One virtual host can only ever be configured with one SSL certificate.
Further, to have multiple different certificates on a single IP address, you'd be using TLS SNI, which is still not practical to rely on for public web sites due to the fact that IE on Windows XP is not compatible with it.
So, for a multiple SSL certificate deployment, you'll probably need an IP per certificate (and a virtual host for each IP)
However, one option for you may be a Subject Alternative Name certificate, sometimes also called a "Unified Communications" certificate by the certificate authority vendors. That would allow you to have a single certificate (and thus, a single virtual host) that works for both domains.