Lump all income together (wages, capital gains, etc.) and subject this number to a continuous progressive tax function (i.e. no bracket nonsense) This function should be of logistic form or similar with a highly negative intercept.
I get the appeal behind making income tax brackets more rational, but an important part of taxation IMO is that the system should be easy to understand for everyone. If tax owing is expressed as y = a^2 + mx -b and that is before any deductions or credits are included, it's not going to give your average innumerate person confidence in the system.