Vitamin B will help a hangover, since the liver uses a lot of it to process the alcohol. Ironically, alcohol also causes dehydration, so drinking a lot of water will also help. Nothing will act as an instant cure, however.
Yes vitamin B is definitely good for hangover as it minimizes the deficiency of vitamin B caused by drinking alcohol. Consume a B-complex vitamin before and after drinking alcohol.