I've seen this enabled by default on routers, but when would you want to disable it?
I don't have a list of all the features that use virtual reassembly but the 2 that spring to mind are firewalls and NAT.
Put simply it's to do with IP fragments (apologies if i'm telling you something you already know here). When you configure "ip virtual-reassembly" it tells the router that rather than forward the fragments on as it would normally it needs to reassemble the packet.
Obviously one of the primary uses of this is with firewalls. So if you have the IOS stateful firewall running then you would want this enabled. Also if you configure NAT under any interface ip virtual-assembly is automatically enabled as far as i know.
My understanding of it was that it was disabled by default and if a feature that needed it was turned on then it too would be automatically turned on.