If you are getting a 169 address that means the desktop is not getting DHCP settings from the router. Try a different port, different cable maybe, network card could be bad. Did you already try rebooting the router?
One of the connection points from the router to the PC is bad, you just need to test each one to see which it is. Try the laptop on the same cable and port if you have not already see if it works on it, just make sure you are not using the wireless connection and that the ethernet connection is OK with it.