As Ger says LinuxCNC and KFlop are the only two reasonably priced options that can handle encoders.
However, unless you're running analogue servos, then there's not really any benefit to feeding back encoders.

The only real benefit of having encoder feedback on a step/dir (or CW/CCW) system, is for tuning, as it allows you to know exactly how the servo is responding to moves. But once the system is tuned, there is no practical difference between the controller stopping things because of following error, or the servo drive disabling things because of a following error.

KMotionCNC itself is pretty basic, but it'll do everything you need to control a CNC machine, and the new screen editor does let you alter quite a lot of things. The source code is also provided for KMotionCNC, so you can even modify it if needed (if you want to use non-simple kinematics, then you need to be able compile the required configuration files)
The real benefit of KFlop is that it is highly configurable, and can be programmed to handle pretty much any configuration of machine with up to 8 axis. And the KMotion configuration software has lots of functionality for tuning servos, along with being able to see encoder/axis positions, In/Out statuses, and a C program editor/compiler for creating the required files to configure the KFlop.