Fifth Grade Math Problem for the Week: Automated Decryption of Caesar Ciphers
Python 2, 384 319

a=raw_input()
e=lambda v,b:(ord(v)+b-65-32*(v&gt;"``"))%26+65+32*(v&gt;"``")
c=lambda b:''.join(chr(e(f,b))if f.isalpha() else f for f in a)
p=map(c,range(26))
w=map(str.strip,open('w'))
l=[0]*26
for k,i in enumerate(p):
    for j in i.split():
        if j.lower() in w:l[k]+=1
m=[i for i,j in enumerate(l)if j==max(l)][0]
print p[m]


I named my wordlist w, which is a newline-separated list of lowercase words.