The modification assistant helps you alter standard SAP (as well as custom coding) for which it will need to be switched on. Enhancements can be applied to preset locations in coding. 2 ways to apply modifications - the difference ?
MODIFICATION
Change to the standard functionality by changing the SAP object itself using the 'ACCESS KEY ' from SAP .These objects needs to be observed during version upgrades as the upgrade patches might overwrite the code written by you . Except for certain incode user exits provided by SAP like MV45AFZZ .
ENHANCEMENT
Change to the standard functionality by using the exits / badis provided by SAP. These objects do not need any access key from SAP. These changes will not get over written during SAP version upgrades.