Main reason to design OOPS is to handle complex programs. Your friend is a bit right in saying it is to handle maintenance task. But this is not the only purpose. Basically with structural programming once the program size grows beyond 25000 lines of got it becomes very difficult to manage it. There comes modular programming and OOPS to sort out the problem.
I hope I am clear.
vipin