Tilesets are just raw image data so once converted to the proper GBA format (using a tool like Wingrit or Bimbo, both of which I have personally used but there are other tools, those may not be the best ones to use) you could even use an ordinary hex editor to inject the data into the ROM if you like. Although I used armips to automate it, but that requires writing asm-like scripts.
Tile Molester (which is what you would often use to extract images out of retro ROMs for modification) can also inject images it seems, so that might be the easiest. But if the new file is larger than the old one, you'll have to modify the pointers in the ROM manually.
Edit: Oh, for homebrew. I guess you just need the converted raw image data out of Wingrit, Bimbo or similar and you'll be able to import it into your code the same way you import other files, no need for Tile Molester or a hex editor.