In his DNS, should he create an A record pointing at our IP address, or a cname pointing at client.app.com?
He should use a CNAME pointing to client.app.com. There are many reasons to do this, but the best one is probably because it means fewer changes to make should the IP address of the server change: only the entry for client.app.com will need to be updated, and everything else that is CNAMEd to it will follow automatically.
Other reasons include the inability to have the same name A record as MX record, as one of the other posters mentioned; as well as the general philosophy that a host should only have a single "true name" (A record), and other records pointing to the same host should be aliases (CNAMEs). Of course, that philosophy breaks down when you have a single A record pointing to multiple IPs and multiple hosts (but it is another good argument for the client to use CNAMES: if your service becomes popular that you need to scale it by load balancing to other hosts that serve the same things, you'd want your customer to benefit from that without having to change anything). (Of course there are many ways to load balance and scale, and you could just as easily choose one that isn't tied to DNS, but that depends on your implementation.)
Are there any differences in the vhost that we need to create in
Regardless of the DNS method you choose, you will need to make sure that apache is configured to accept the other names.
so that when someone types in www.client.com, the url still shows www.client.com, but everything is transparently working on client.app.com
Of course you'll want to confirm the below with a tour through the apache docs yourself, but I can think of two ways to do this:
UseCanonicalName Off with
ServerAlias inside each
Keep in mind that with either method, you might have to make sure the html and any associated scripts are doing "the right thing" to generate URLs properly for the behavior you desire.
There are also many good examples and interesting discussion here: http://httpd.apache.org/docs/2.4/vhosts/mass.html on the topic.