The referred answer is correct as far as the classic use of super in python is correct but OpenERP adds a couple of its own twists.
Remember that all your models inherit from osv.Model (or osv.TransientModel) so technically when you call super(account_asset_asset...) in the above code, it is going to call the copy method on osv.Model which is itself only a thin inheritance of osv.BaseModel so it is that copy method that will be called.
The code in osv.BaseModel.copy goes through the various installed modules that inherit account_asset_asset and dynamically execute the copy methods on those in sequence. This is usually the last installed module first, working its way up to osv.BaseModel but you can use sequences to control this I think.
So.. when you are overriding ORM methods such as copy, create etc., the result of a super call is to call the same method in the previously installed module that inherits the same model. Put simply, ignore the classic Python inheritance of osv.Model and look at the _inherit variable on the model.
A couple of gotcha's here - sometimes, an inherited model will add in extra named arguments into the method signature so make sure you specifiy named and un-named arguments correctly.
If you are over-riding copy, create etc., make sure you also return the result of the super call or you will kill the inheritance chain.