Reduce iPhone Ringer Volume Without Affecting Messagaging Alert Volume
Solution 1:
Sadly this isn't an option on a non-jailbroken device.
Solution 2:
One option is to use a silent (or very quiet) ringtone for phone calls and then have the normal sound play for messages. This site has a walkthrough. You could also use the same trick to silence calls from specific numbers.