There's certainly quite a bit of overlap between them.
A graphics programmer on an engine team will work with APIs like D3D/GL in order to implement rendering of features, like deferred shading or shadow mapping, as well as general stuff like scene management, and generic shaders. They'll also work on tools, such as importers for art files, and have to work with artists as their clients. A graphics programmer on a game team will also work on game-specific special effects, post processing and content challenges.
A tech-artist is not as likely to use D3D/GL/etc directly, and won't likely work on engine features such as scene management. They are the glue between the artists and the programmers though - so anything on that interface is stuff that they will work on. That includes shader code, importers, exporters, plug-ins and scripts for art tools, automation of processes such as baking, helping with naming conventions, and making sure that artists actually follow the right conventions. They also should know how to use all the art tools that they're writing plugins/exporters/scripts for (but they don't have to be a good artist - just have the technical knowledge of artists work flow).