OOP stands for Object Oriented Programming, and metatables are used to give special properties to tables. Metatables and OOP are two completely different subjects. Metatables are used in OOP, however.
The basic concept of OOP is using objects that contain the functions for your program, instead of managing all of the separate variables on your own.
CC already has an example or two of OOP and non-OOP, specifically peripheral functions.
Non-OOP:
peripheral.call('right', 'write', 'Hello World!')
OOP:
monitor = peripheral.wrap('right')
monitor.write('Hello World!')
As you can see here, we use a monitor object as a "middle-man" for calling a function rather than calling the function ourself. In this example, it does take longer, but using OOP does shorten operations in the longrun. Imagine the above examples, but with a couple hundred more writing operations. Using the monitor object would be less typing, no?