The "pattern table" (aka "CHR") is a series of 8x8 pixel graphics. Each pixel can be one of 4 colors, where color 0 is "transparent". Each 8x8 graphic can be thought of as a "tile".
The "name table" is a 32x30 array of tiles which make up the screen.
For example... if you want to have a screen that is blank, except for a message that says "Press Start", your nametable might look something like this:
Code:
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000Press0Start0000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
Where '0' coresponds to a "blank" tile in your pattern table, and each letter in the "Press start" text coresponds to a tile that has that letter.
There are 4 BG palettes to choose from, and the attribute table assigns a palette to each tile on the nametable. It's a little involved how the attribute table works... its layout is funky. It's outlined on the wiki (and in pretty much every document that talks about basic PPU functionality).
EDIT:
As for tools, sorry but I am not familiar with any as I don't actually do nesdev -- I do emudev.