
Step 1: Check your provider.
If your plan is less than 15mbps and you have multiple people in the house that enjoy streaming music and/or video, you might want to consider upping your plan to 25mbps (or higher). Also, it's important to understand that 'mbps' means 'mega-BITS per second' and not 'mega-BYTES per second.' In case you're curious, there are 8 mega-bits in 1 mega-byte.
Step 2: Check your modem.
Is that thing old and dusty? Have you had it for more than 4-5 years? It may be time for an upgrade. Sorry folks, but nothing lasts forever. Computer parts, networking, etc. are just not meant to be used for 10+ years. Even if you could, why would you? Don't dilute your internet speed needlessly.
If you are renting a modem from your internet provider, how long have you been renting it? If you're paying $8-10/month, you're spending about a hundred dollars or more every year. I normally don't recommend doing this unless you absolutely have to. If you're going to spend that much, it better be a good one! If you're looking to spend that much you might as well check out this page (courtesy of one of my favorite websites) for a well-tested replacement.
Step 3: Check your router. (Wi-Fi only)
Likewise, how old? If it doesn't have Wireless-N capabilities, it's definitely time for a new router (N-routers have been out for years). You may not need a new one, but chances are you do if steps 1 & 2 didn't help.
Here are a few things I did before deciding to upgrade:
First, check the firmware. You may just need to update the software on the router. They should actually do this on their own, so chances are slim that your slow internet is because of a missed update. In any case, make sure you're updated before making a decision.
Second, download a free program called "inSSIDer." I just Google'd "inSSIDer home" and downloaded from the very first link. Make sure to get the "home" edition, it should have an orange and blue icon.
Run the program, then click the "networks" tab. You should see your connection, as well as all the other connections within range. Next, look in the top right for "Link Score." What you want to do is get that score as high as possible. My score was 20 or so the first time I checked (before new router), and now gets up to about 80 at times. It order to get it higher, try changing the "channel" on your router to 1, 6, and then 11. To do this, you'll need to access your router through it's default IP address, here's a list of default IP's, you'll have to check which brand of router you have. When you find yours, type it into the address bar of your browser. Default name is usually "admin", passwords may vary.
Once you get in, check around for where you can change the channel. If you have a dual-band router, try increasing the 5ghz channel as high as it will go, that made a huge difference for me. Every time you change the channel, check your link score again and see if there's a change. Also, you want a channel that doesn't have more than 1 "overlapping network" (displayed below link score, and factored into the score I assume).
After all of this, if your score doesn't get higher than 40, it's probably time for a new router. Also, check speedtest.net while you're checking link scores. It's not the ultimate way to determine good connection, but it sure helps (you can't just rely on initial burst speed).