Python 2.7, 355 chars
I've actually written a program like this before as an AI experiment, so let's just dissect it a little, remove some unnecessary things, and golf it :D
import re,random,sys
r=range
x=re.compile("([\w']+[\.?!,]?)+")
f=open(sys.argv[1])
c=f.read()
f.close()
t=x.findall(c)
m={}
for l in r(len(t)):
w=[];c=t[l]
for y in r(len(t)-1):
if c==t[y]:w.append(str(t[y+1]))
m[c]=w
x=random.choice(m.keys())
for i in r(int(sys.argv[2])):
if len(m[x])==0:break
y=random.choice(m[x]);print y,
x=y
input works by providing a filename and the length of the output you want, in words
python disspress.py nevermore.txt 100
and nothing more! Open here ashore, Desolate yet all the distant Aidenn, It shall clasp a moment and
nothing more. Deep into the Night's Plutonian shore! Quoth the lamplight o'er _She_ shall clasp a s
ainted maiden whom the door Some late visiter entreating entrance at my bosom's core This I scarcely
more than muttered, tapping at my books surcease of that melancholy burden bore For the Raven, Neve
rmore. And the chamber door Bird or stayed he hath spoken! Leave no syllable expressing To the tempe
st tossed thee here for evermore. And each separate dying ember wrought its only stock and
sample text brought to you by a previous challenge
Optionally, you could save the contents of m
to a file for later use, so it doesn't have to parse the entire file, as that could take longer periods of time to build the dictionary it references for the words especially for larger texts (like books).
edit: regardless if there was a winner chosen already, I'm posting it anyways :P