When you say it's slow with the "the ethernet cable plugged straight into the computer" does that mean you're usually on wireless? Did you disable wireless after connecting the cable?
There are some things to try to see where there's a problem. Go to
http://www.dslreports.com/speedtest and see if you're getting the expected download speeds. Try with wireless and with wired (disabling wireless) connections.
If you're getting the same issues with wireless and wired connections, it's unlikely to be a computer problem, rather something upstream in your router or ISP.
Open up /Applications/Utilities/Network Utility and select ping. Enter a website like
http://www.yahoo.com and run the ping. What are the response time values like? Is there any packet loss? If you are getting slow responses or packet loss, try pinging your router. If there are issues pinging an external site but none pinging your router, it might be a temporary ISP problem.
If you don't have another computer, borrow one and see if it has the same problems.
You could also try setting your DNS servers manually to those from
OpenDNS. Some people claim faster surfing with these instead of their ISPs servers.