Usually, given a grayscale image (e.g. black text on a white background), doing an emboss will create an image which makes it look like the original image was indeed embossed, rather than just being a "flat" surface. It does this by faking the way light would be reflected off the surface if it was really embossed. Effectively, it is hacked2Dbump mapping.

1. Take a grayscale image A.
2. Make a copy called B.
3. Offset the image B by one pixel in both the vertical and the horizontal. (Note: By using different offsets -- even non-integer offsets -- you can make it look like the "light" is coming from a different direction).
4. Subtract B from A.
5. Adjust the range so you don't get negativecolors.

Things can get a little bit tricky in practice, because frequently images are stored as unsigned values, and the above can lead to negative values. This isn't too tricky to solve, basically you can get around it by using scale and bias adjustments.