The Free Software Foundation provides a helpful definition of free software, which I will summarize here followed by a link to the full definition.
First, "free" doesn't refer to price. It refers to freedom. In the parlance of the movement, this is often stated as "free as in freedom, not free as in beer." Of course, free software may also be distributed for zero cost ("free as in beer") but that isn't what makes it free in the important ("freedom") sense. (See Note on "Free software" and non-English Languages at the end of this post for further discussion).
The Free Software Foundation provides four criteria by which to judge whether a piece of software is free software. These are referred to as the "four essential freedoms." If it meets all four criteria, it's free software. If not, it isn't.
The four essential freedoms (numbered 0 - 3):
#0. The freedom to run the program, for any purpose.As you read the above, you'll notice that free software is not a technical issue. As Richard Stallman has stated, "[free software] is a question of the freedom that users do, or do not, have in using it. It is an ethical, social and political question."  This becomes more obvious when you think about the four essential freedoms in the following light:
#1. The freedom to study how the program works, and change it so it does your computing as you wish. Access to the source code is a precondition for this.
#2. The freedom to redistribute copies so you can help your neighbor.
#3. The freedom to distribute copies of your modified versions to others. By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this. 
- Freedoms #0 and #1 put each individual user in control (rather than the developer of the software) and they allow the individual user to help him or herself.
- Freedom #2 allows the user to help his or her neighbor.
- Freedom #3 allows the user to contribute to his or her community.
Note on "Free software" and non-English languages:
Richard Stallman has pointed out that the English language doesn't have a word to distinguish between "free" as in price and "free" as in freedom. In other languages, such as Spanish, there are separate words. So in Spanish, when someone says "software libre," you immediately know they are talking about freedom and not something being "gratis" (zero cost).
 The Free Software Definition [fsf.org]
 Richard Stallman at the University of Calgary on 2009-02-03 [youtube.com]