I'll add another perspective, based loosely on Andreas Blass's comment on the accepted answer: SAT is in some sense 'conceptually universal' for a broad class of NP-complete problems. To be more specific, I'd argue that SAT captures the essence of Constraint Satisfaction Problems: find a configuration that satisfies a given set of conditions. Sudoku is a canonical example: we want to place a multiset of objects (usually given as numbers) in a grid such that each row has exactly one of each object and each column has exactly one of each object and each specific subgrid has exactly one of each object.
SAT acts as a sort of assembly language for CSPs; we can 'compile down' a constraint problem into a set of specifically boolean constraints and then transform them into normal form. For instance, for a 4x4 sudoku we could use $4\times4\times4=64$ variables $v_{i,j,n}$ for $1\leq i,j,n\leq 4$ where $v_{i,j,n}$ is true iff the $(i,j)$'th cell of the grid contains the object labeled $\bar{n}$. The constraint that the first row has at least one instance of object $\bar{1}$, for instance, is the clause $v_{1,1,1}|v_{2,1,1}|v_{3,1,1}|v_{4,1,1}$. The constraint that it has no more than one is a little more complicated, but still 'just' polynomially so; it can be expressed as $\neg(v_{1,1,1}\wedge v_{2,1,1})$ $\wedge\neg(v_{1,1,1}\wedge v_{3,1,1})$ $\wedge\neg(v_{1,1,1}\wedge v_{4,1,1})$ $\wedge\neg(v_{2,1,1}\wedge v_{3,1,1})$ $\wedge\neg(v_{2,1,1}\wedge v_{4,1,1})$ $\wedge\neg(v_{3,1,1}\wedge v_{4,1,1})$. In other words, make sure that no two cells in the row both have an instance of object $\bar{1}$. Similar constraints will make sure that every cell has an object and no single cell has two objects in it, etc.
This process is obviously clunky, but hopefully you can see how it's also mechanical, in much the same way as translating a higher-level programming language into assembly code is; we simply need to find some set of booleans that describes the possible state of the thing we're looking for and then write out the set of constraints that those booleans must satisfy both in order to be a valid configuration and in order to be a solution to the problem. Indeed, my understanding is that actual CSP solvers work a lot like this: there's a 'higher level language' for expressing constraints in, and those constraints are then translated down to either SAT or something much like it, to which various solving algorithms can be applied.