I've been rejiggering my prompt. The story so far...
- id@host - arguably useless yet i find them reassuring
- git branch name - in red if master
- git branch dirty
- cwd
- more detailed git status flags
- rvm ruby version (and gemset, though i seldom use those)
- last command exit status if nonzero
- % or # depending on whether i'm root
- more general VCS indicators for the non-git world
- execution time of last command
- time
- command #
- time since last commit
- presence of background jerbs
- current git sha
- date

How many lines? At the last place we worked together I had a two line prompt. Which included host, branch, and ports for that branch. Colored red if I was in integ. Sometimes I have found the time it took to execute the last command useful, esp for those long tasks that I wasn't paying enough attention to, to notice if they were getting longer.