A home directory is where all of a user's personal files are kept. Sometimes referred to simply as ~ or ~/, the ~ is a metacharacter for the home directory in most shells. Usually it is the only directory an average (non-priveleged) user has full read and write access to. Most other users are barred from someone's home directory by default. Many programs also keep hidden configuration files there.
On most Linux systems the home directories are subdirectories of the "/home" top-level directory, for example a user named Fred would have his home directory under "/home/Fred". The exception to this is the root user, whose home directory is "/root". You will also see exceptions to this on rather large multi-user installations where the system administrator has come up with an alternate directory structure for users' home directories. For example subdirs for the starting letter (e.g. /home/f/Fred) to reduce the amount of directories in /home (and also allow for easier splitting the home dirs over multiple partitions/disks)