Use local variables to name complex expressions (or portions of them) to help decompose those expressions into more manageable pieces of logic and provide clarity around the purpose of that code. These simple abstractions help to simplify those expressions, making them easier to read and easier to understand — not to mention how easy it is to provide a hook for debugging.
It is important to consider the scope of the expression. If it is only used within one function, then Extract Variable is a good choice. But if the expression is to be used in a broader context, then Extract Function would be a better choice. Encapsulating the expression in a function will enable that expression to be reused across the entire solution. This will help to simplify your code while keeping it DRY.