We fought off a complete re-write for a critical component in one of our products for many months due to knowing the amount of effort/complexity required, however in the end it was not the best decision to delay. The decision was to work on product features rather than fix the known scalability issues as we believed we still had enough headroom.
We grew faster than expected and ended up in a position where we had exhausted most of our software optimisation options, database tweaks and even hardware options with upgrading to SSD's, RAM etc.
In the end the component was re-written around the clock by a few engineers to leverage redis and msmq in a couple of months and it solved all our problems thanfully - a very stressful time.
Lesson learnt. It was a difficult call when managing a limited set of resources deciding where to focus the attention.