I live in NJ but work in NYC. Which state tax should I pay? Is there a separate city tax as well?
New York state will require you file with them, and to the city of NY if that is where you work. New Jersey will give you a credit for taxes paid to other jurisdictions.
You should submit a W-4 for New York state with HR/payroll so that your withholding ends up in the correct place. Otherwise you can end up with the situation that one state wants a big check the next April while the other state is slow to refund the excess you paid them.
Some states have reciprocity agreements so that only the state you live in taxes your income. Unfortunately for you NY and NJ don't have an agreement so you will endup filing forms with both states.
New Jersey has guidance that should explain everything:
If you are a New Jersey resident but you have income from sources outside New Jersey, and you are required to pay tax on that income to a jurisdiction outside New Jersey, you may be eligible for a credit against the income tax you owe to New Jersey.
You qualify for the credit if you paid income or wage tax on the same income in the same year to both New Jersey and to another taxing jurisdiction outside New Jersey.
For purposes of this credit, a taxing "jurisdiction" means any state in the United States other than New Jersey, or a political subdivision of another state, such as a city, or the District of Columbia. However, you cannot claim a credit for income tax paid to the Federal Government, Canada, Puerto Rico, or any other foreign country or territory.
New Jersey requires you to pay tax on all of your income, regardless of where it's earned. The credit reduces your New Jersey income tax liability so that you don't pay taxes twice on the same income; it is not a refund of the taxes you paid to another state or city. Your credit may never exceed the amount you would have paid if you had earned the income in New Jersey.