The default type of a "value change" notification is the
aura:valueChange event. Unfortunately, you can't use it:
<!-- compiler error here -->
<!-- Cannot fire event of type: markup://aura:valueChange: Source -->
<aura:registerEvent name="onchange" type="aura:valueChange" />
So yes, if you want to be able to "fire your own event", you'd have to use a custom event, as we can't fire system events.
According to the documentation, you're supposed to be able to extend the default aura:valueChange event, or register use of it directly, since it is global, but unfortunately, neither are currently allowed by compiler (see above for registerEvent):
<!-- Failed to save valueChange.evt: Event markup://c:valueChange cannot extend markup://aura:valueChange: Source -->
<aura:event extends="aura:valueChange" ...
Ultimately, a custom event is the only viable method at this time.