Of course... you could also do:

require 'rubygems'
require 'hpricot'

text =<<HERE
This is one line of text<br />
This is another line of text<br />
It keeps going on like this<br />
<br />
Until a new paragraph is started<br />
Otherwise, it's just more of the same<br />
HERE

class String
  def not_needed?
    self.strip == "<br />" ? true : false
  end
end

@parsed_html = Hpricot(text)
@paragraphs = Array.new
@parsed_html.each_child_with_index do |c,i|
  line = c.to_s.strip
  if line == ""
    puts "<p>#{@paragraphs}</p>"
    @paragraphs.clear
  else
    @paragraphs << "#{line} " unless line.not_needed?
  end
end

Which produces:

<p>This is one line of text This is another line of text It keeps
going on like this </p>
<p>Until a new paragraph is started Otherwise, it's just more of the same </p>

Now... don't pick on my favorite HTML parser again! :D  Just ask nicely :)

Mikel