This is actually quite simple.
You must set the Region property of your button.
Something like this in the constructor...
using(var path = new GraphicsPath())
Region = new Region(path);
...will make your button an ellipse as wide & tall as the original size.
In order to make an 'L' shape, you will need to add rectangles to the path instead.
Note: You will still want to override the OnPaint method to draw it yourself.