From How to: Publish Events that Conform to .NET Framework Guidelines
Although events in classes that you define can be based on any valid delegate type, even delegates that return a value, it is generally recommended that you base your events on the .NET Framework pattern by using EventHandler, as shown in the following example.
Why? How about:
public delegate void GenericEventHandler<TType, TArgs>(TType sender, TArgs args);
public event GenericEventHandler<SomeSender, SomeArg> SomeEvent;