1. Whatever you give should be invested in equities (i.e. stocks), without question, if you are looking at a 20 year time horizon. You can do this either by investing with someone like Vanguard Group (e.g. their S&P 500 fund, their Wilshire 5000 fund, and and International index fund). You can also achieve a similar, maybe ever lower cost, solution by opening a stock account and buying similar Exchange Traded Funds from Vanguard or Fidelity. The annual cost of such ETF's is incredibly low. So, if you are only going to be buying for the next 20 years, these are very low-cost options. Many stock trading firms will give a certain number of free trades annually, so you can likely buy without paying a commission.
2. A 529 plan is a good idea. Do a bit of research about low cost states, as each state offers its own 529 plans with associated investment options and expenses. I recommend finding a state that offers funds managed by Vanguard Group, as they are a very low cost operator. Put the money in something like an S&P 500 fund, a total market fund, or some such. Notwithstanding where you or your nephew lives, you can open a 529 in any state. The benefit from opening one in your state is that you may get a state income tax deduction for your contribution. However, that may not offset the higher costs of your state's 529 relative to those of other states.
You probably want to do something in the child's name, so that any income is attributed to him rather than you. A child can earn up to $2000 annually before paying income taxes, so any income generated by the account would be tax free. (529's are inherently tax free, so if you go that direction the 529 stays in your name with the child as the beneficiary.)