Whatever the recipient needs to know to assist the user should be included on the form.
Never ask for less then what you need. All you really need is a name and a contact method (email address, phone number) but in some situations asking for more information, like a product serial number if it is a warranty issue, etc, should be required as it greatly expedites the process of assisting the user. The goal is not to discourage users from contacting you but getting as much information as you can so the process of assisting them is smooth and easy for both parties..
Never require more then than that. You can ask for more but don't require it. You don't want to turn away users just because they feel like completing the form is a chore (or have difficulty with a field/information).
EDIT:
Would you say having a contact form is better by any given measure than simply saying "contact me at user1725@example.com or by phone at 1800-555-2600" ?
Yes. Not only does it prevent the email address from being displayed which prevents spam and allows it to change without affecting users, but it allows you do ask whatever you need from users instead of hoping they provide you with the information you need (they rarely do). Having a phone number is a good idea if phone support is available as many people prefer it and it provide an immediate response which can be good for sales/customer relations.