It's hard to overstress the importance of picking your supervisor :). Students often think that the most important thing in choosing a lab is that the research is interesting. This is not the case in undergrad: what is most important in choosing a lab is, in the following order:
1. Your supervisor
2. The people you will be working with
3. The research
Keeping these things in mind will help to prevent unhappiness. And you might think: "who cares if I'm unhappy? I'll be doing cool research," but the ordering of this list is actually the same ordering as for career advancement. As an undergrad it does not matter what you study. You will be set for graduate school as long as what you're studying is in a sort-of-related field and it has sort-of-related techniques (this last bit isn't essential, it's just helpful). What graduate schools do care about is if you have good science training. And to have good science training, you need a good supervisor.
Who is a good supervisor?
First of all, you should figure out whether the head of your lab is actually going to be your supervisor, which is not likely to be the case. PIs often oversee the graduate students and post-docs, while undergrads are left to the graduate students and post-docs to manage. So you want to have a good a good manager— PI, post-doc, or graduate student.
If your manager isn't your PI, choosing a good mentor is somewhat out of your control. I'm told it works like this: the PI gets an email from an interested student. The PI sends an email out to the lab, asking if any graduate student wants an undergrad. If a graduate student wants an undergrad, that undergrad is assigned to the graduate student.
Regardless of who you will be working with, try to make sure they care about your development. Undergrads are pretty useless in terms of doing research, because anything they can do graduate students and postdocs can do better and much, much faster. So you need to have someone who's interested in training you and making sure you learn something out of the experience, rather than being stuck doing gruntwork forever. (You're going to be doing some gruntwork, because graduate students take on undergrads 1) to give back, 2) for their CVs, and 3) for gruntwork (see this post), but make sure that eventually you'll be doing some thinking work too.) It helps if you get along with your supervisor. Don't underrate the value of niceness—there's going to come a time when you have a conflict and can't come in, and having an understanding and flexible boss is very important. Of course, you want to make sure they do good research too! You can do this by checking whether the lab publishes regularly or not (there will be a Publication List on their website; check the year when papers were published) though this isn't a perfect marker, because usually professors at liberal arts institutions publish less than professors at larger research institutions so it can be hard to compare.
How do you find these hypothetical supervisors, anyway?
That's where the research (before the actual research) comes in. Figure out approximately what you want to work on. (In undergrad, for me, that was: neuroscience. Preferably with something larger than cells. That's about as specific as you should get when you're first getting started.) The next step is to pull up the research pages of all the professors whose research fits your criteria. Search the professor's name: everyone has to have a website in science these days. Check to see if they're taking undergrads—it's always worth emailing professors if their website doesn't say, but sometimes professors will have a specific form for you to fill out. Email those professors (I have a separate post about emailing professors. Be veerrrrrry careful about that first email.) From the people who reply back, meet with them in person.
Here's the crunch point. If you only have one option but don't like the professor, it's probably still worth it to volunteer with them for a while, but you should continue seeking out other professors. If you have multiple options, ask around. Choose the professor who is known to be the best mentor, and go with them, no questions asked research-wise.
Are you going to get paid?
Here's my philosophy about getting paid: in the US, you should have funding for the summer. Apply to a LOT of places, especially your home institution, so that you have funding for the summer. I couldn't afford to not get paid over the summer, and there are enough REUs (undergraduate research experiences) out there that you should get paid somewhere.
During the school year, try to get course credit; that's usually an option. It can also be a surprising grade booster, oddly enough? But course credit is usually good just to show that you've done research consistently. If there's an offer for pay, I would take that. If you can apply for fellowships so that you can get paid to do research for the year, definitely apply and definitely take that. If you have to volunteer, I'd do that as well—at this point, you're an undergrad, so any research experience is good experience and it's fine not to get paid in the short-term.
What if I'm stuck in a lab I don't like?
Weeellll. This sucks. It's going to depend a lot on how large your school is. If you can switch to another lab, that's an excellent option. If your school is small enough that you can't switch to another lab, then you're probably going to have to stick it out. Professors have a lot of power if you want to stay in academia, and you can't forget that science is a people network. This isn't a big deal if you're not staying in academia, but if you are, you need a recommendation letter from whomever you're working with to move to whomever you want to work with. But the problem of everyone knowing everyone else is a bigger problem in graduate school, and if you're just starting out, feel free to move around. In American undergrad, you're expected to jump around labs until you figure out what you want, so you'll likely have the chance to sample a bunch of different labs before you settle down.
Basically, make sure you're happy in whatever lab you end up in, and know that that's going to be much more a matter of the people you're working with rather than the research, because as an undergraduate you need training in science in general rather than any specific topic. You don’t know enough yet for specific knowledge to be particularly useful; you'll just be learning the process and how to think and work independently. Thus, supervisors are essential, and as long as you keep that mind you'll have an awesome research experience!