I think there are only two reasons to rewrite.<p>1) When you need to support a different platform, ie we have a Windows Desktop app and want a Web or Mobile or Mac.<p>2) When the code base is so bad adding any new features creates many time more bugs.