Horizontal partitioning is best used when different categories of rows are processed differently. For example, if you would like to have a report for each region, then it might make sense to partition the data by region. This type of partitioning will increase query performance. Horizontal partitioning is most often done by using a single column value or a date.
Vertical partitioning splits up the columns of a table, repeating the primary key. This would best be used for only allowing access by a group of users to a portion of the data. Of course, in both cases, tables could be joined to retrieve all data.