This is a pager, ie. a program used to view the contents of a file or the output produced by a different program one page at a time.
Similar to 'cat' you can use 'less' to view the contents of file. However if the file's contents was more than what could fit in one screen, 'less' prevents the terminal from getting scrolled and divides the output into pages. Let us assume the presence of a file 'foo.txt' in the user's home directory, and try to look what lies inside.
user@box ~$ less foo.txt
Once you are inside 'less' you can use the up arrow key or ctrl+p to move up one line, while using the down arrow key or ctrl+n to move down one line. Page up or alt+v can be used to see the previous page, while page down or ctrl+v can be used to see the next page. To quit, just press 'q'.
Often programs produce output which are too long to fit into one screen, and once the terminal scrolls up some part of it gets lost. eg., the following command will spit out the names of all files owned by the user 'root' on the system.
user@box ~$ find / -type f -user root -print
Since the number of files owned by 'root' is too many, it must have been impossible for you to read most of the output generated by the above command. To prevent this from happening just pipe the output to less as shown below and you will be able to go back and forth and have all the time while looking at the names of the files found by 'find'.
user@box ~$ find / -type f -user root -print | less
You can try this with other commands also.
Although you might not need much of the options in the beginning., you can still have a look at the manual though.
user@box $~ info cd user@box $~ man cd