I prefer ISBoxer keymaps. There are all sorts of ways to create delays, timers and "false cooldowns" for abilities.

Classic rotations are generally so simple that ISBoxer should be more than capable of managing. There are a couple of exceptions like hunters having to manage the shoot timer or warriors requiring some level of decision making on when to dump rage but no macro/addon can do that for you.