Who is a subjunctive pronoun. It always functions as the subject of a clause or sentence. Whom is an objective pronoun. It always functions as the object of a clause or sentence. This seemingly-simple distinction actually creates a great deal of confusion for both native and non-native English speakers.
Much of this confusion stems from the fact that whom is largely obsolete in modern American English. Native speakers rarely talk or write in a manner that would require its use. At the same time, whom has a handful of very specific uses that who cannot fulfill (at least not yet).
The Ubiquity of “Who”
In most modern English sentences, who will be the correct choice. The version of a sentence that uses who will sound more “natural” to the majority of native speakers:
Who do I give the report to?
To whom do I give the report?
While both of these questions are grammatically correct, a native speaker is far more likely to use the first one in casual speech. Note that even though whom comes before the main verb in the second sentence, it follows a preposition (“to”). In other words, whom is always the object of some part of the sentence.
Common Uses of “Whom”
Nearly all uses of whom in modern English involve placing it after a preposition. The following salutation for a business letter will be familiar to native speakers:
To whom it may concern:
This has become the standard way to address a letter when you do not know the gender and/or identity of the intended recipient. Its utility has resulted in its continued usage despite the outdated language that the phrase itself contains.
Advanced “who/whom” Uses
Occasionally, the choice between who and whom is less clear-cut. This usually happens with complex sentences, ones that contain more elements than simply a subject, a verb, and an object. The most effective way to determine if you are dealing with one of the handful of situations where you need to use whom is to substitute personal pronouns for the who/whom in question.
This technique requires a solid grasp of subject and object pronouns. If you are not at the point in your English learning experience where you can easily explain the difference, you are not ready to write the kinds of complex sentences that require using this technique.
If you can substitute he or she, you should use who:
It was Michael Jordan, I’m positive, who starred in the movie Space Jam.
He starred in the movie Space Jam.
If, on the other hand, you can substitute him or her, you should use whom:
Julia is the engineer whom I worked on the project with last year.
I worked on the project with her last year.
This trick isn’t perfect, as you have to be very careful that you do not accidentally change the word order while adding he/she or him/her. However, it is still the most effective check on “who vs. whom” that we have available in modern English.