I use Weather Underground. It works well, has a nice interface, and has proven to be accurate (well, as accurate as they get, still not perfect).
One thing I really like about Weather Underground is you can set up "Smart Forcasts", with weather parameters (other apps might have this too, not sure). For example, I have a custom profile set up for sailing. I tell WU the parameters for good sailing weather (temperature range, wind speed range/direction, chance of rain, etc), and it makes a graph that shows the best and worst times to go sailing, based on my preferred conditions. You can set them up for running, cycling, whatever you want. It creates an easy-to-read graph, so I don't have to look at 4-5 different areas of the app to figure out if conditions will be good enough. Tall bar on the graph = go sailing, short/no bar = stay home.