The federal government gives out the most. To qualify, students and parents need to fill out the Free Application for Federal Student Aid (FAFSA).
Most federal grants, such as the Pell grants, are awarded strictly on the basis of financial need. But some new programs, such as the Academic Competitiveness grants and Smart grants, are awarded to low-income students who also have good grades.
State governments give out lots of money too. Some states, such as Florida, Georgia, New Mexico, and Tennessee, give out grants based solely on grades. Others, such as California, give out money based on financial need and grades.
Universities give out lots of their own money. To qualify for their scholarships, many schools require students and parents to fill out the CSS/Profile. Many others will simply award a "merit" scholarship, regardless of the student's financial situation, to students with top grades, test scores, or other in-demand skills or talents.
Many nonprofits give out free money. Some require students and parents to document financial need by filling out the CSS/Profile. Others require their own forms, essays, or other projects. Your high school counselor and college department head are likely to know of the local, less-publicized programs that offer you the best odds. But you can try searching on the Web at sites like Scholarsite, College Board, Dollars for Scholars, and a list maintained by a Ph.D. named Paco Tomei.
Some employers provide education assistance to the children of their employees. Some unions also provide assistance to the children of members. And some companies have "scholarship contests" that are often also clever marketing campaigns, such as the Duck Tape prom outfit contest.